弄了个javascript的测试页面,越弄越发现javascript的灵活
js 代码
//oh既是一个对象,也是一个函数, 用 new oh()来调用时, //则相当于定义了一个class,虽然javascript中没有class概念 function oh() { this.x=10; this.y=20; this.echoX=function() { alert(this.x); } } oh.prototype.aa=10; //定义prototype对象中的属性(prototype是一个对象) oh.prototype.bb=20; oh.prototype={ aa:20, //复盖前面的oh.prototype.aa=10的定义,现在aa=20 cc:function() { alert("cc"); } } //定义oh对象的属性 oh.dd=function() { alert("dd"); } //oh对象也可以当做数组来用 oh[0]=0; oh[1]=1; //调用数组的push方法 [].push.apply(oh,[3,4,5,6]); var test=new oh(); //生成新对象 test.cc(); //正确,在prototype中定义 test.echoX(); //正确,在function中定义 test.dd(); 错误,不能调用 因为dd方法没有在function(相当于类定义)中定义,在prototype中也没有 oh.dd(); //正确,可以调用,dd相当于是oh对象的一个方法 var test3=oh[0]; //正确,可以做为数据来用 alert(test2); var test3=oh.x; //test3=undefined var test4=test.x; //test4=10;
貌似 javascript中的一个对象,也可以同时是一个函数,数组,类定义..
继续学习.....