弄了个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中的一个对象,也可以同时是一个函数,数组,类定义..
继续学习.....