(function(){
var a = function(window){
return new a.prototype.init(window);
}
a.prototype = {
init:function(){
//stand for a
return this;
},
test:function(){
alert("This is a test");
}
}
a.test = function(){
alert("I am a test");
}
a.prototype.init.prototype = a.prototype;
//output "This is a test"
a("test").test();
//output "I am a test"
a.test();
})();
/**
一点个人理解
1)首先整体是一个匿名函数,直接执行
2)定义一个类或者成为函数a 返回一个(init)对象
3)定义a的prototype属性,理解不深刻,应该相当于所有对象共有的属性,不能由类访问。
4)定义a的全局函数test,个人理解相当于静态方法,但是必须由类来访问。
5)将a的prototype赋值给a的init属性。因为2)中返回一个init对象。达到方法共有。
6)a("test").test()相当与访问一个类对象的方法。
7)a.test()相当于访问类的静态方法。·
* 正如$.each()$("test").each()和不同一样,6)月7)也不一样,是不一样的定义。
*/
阅读(585) | 评论(0) | 转发(0) |