关于自定义js对象的小试验

王朝html/css/js·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

好久没写点东西了,一来还没什么特别的东西,二来也是天冷了,惰性发作。

虽然知道js能够自定义对象,但一直没有深入的研究过,所以那些知识都是别人的,要成为自己的,那么,简单和深刻一点,那就是自己做试验。

下面的简单例子主要是关于对象的属性的创建,a,b都是一般形式的属性,而c是对象属性。在对象obj实例化的时候,c指向的对象同时被实例化了,obj()里面有两个this,但意义是不一样的,这个从下面的alert出来的内容就可以看出。一个指向本身,另外一个指向的对象属性。

我本来也不确定这两个this到底是不是一样的指向,做了试验就一下子清楚了。

所以有不确定的问题的时候,自己不妨做个小试验验证一下。

或许下面的代码这样写会更清楚明白。

function obj1(){

this.a = 1

this.b = 2

this.x = 6

this.c = new obj2()

}

function obj2(){

alert();

this.x = 3

this.y = 4

}

objaaa = new obj1()

alert(objaaa.x)

alert(objaaa.c.x)

</script>

如果再深入一点,给obj1加个方法,请注意方法跟子对象属性区别--new关键字方法是没有的:

function obj1(){

this.a = 1

this.b = 2

this.x = 6

this.c = new obj2()

this.funcA = function (){

alert("hahahah")

}

}

function obj2(){

alert();

this.x = 3

this.y = 4

}

objaaa = new obj1()

alert(objaaa.x)

alert(objaaa.c.x)

objaaa.funcA()

</script>

<script>

function obj(){

this.a = 1

this.b = 2

this.x = 6

this.c = new function(){

this.x = 3

this.y = 4

}

}

objaaa = new obj()

alert("obj的x="+objaaa.x)

alert("obj的c的x="+objaaa.c.x)

</script>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航