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

类别:网站制作 点击:0 评论:0 推荐:

好久没写点东西了,一来还没什么特别的东西,二来也是天冷了,惰性发作。
虽然知道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>


function run(obj){ if (document.all.code.value==''||document.all.code.value==' '){alert("您需要运行的代码为空!");obj.focus()} else{var winEx = window.open("", "winEx", "width=800,height=600,resizable=yes,top=0,left=0"); winEx.document.write(document.all.code.value);winEx.document.close()}} <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>

本文地址:http://com.8s8s.com/it/it31030.htm