Chinaunix首页 | 论坛 | 博客
  • 博客访问: 27706
  • 博文数量: 9
  • 博客积分: 47
  • 博客等级: 民兵
  • 技术积分: 95
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-03 21:29
文章分类

全部博文(9)

文章存档

2014年(4)

2012年(3)

2011年(2)

我的朋友

分类: JavaScript

2014-04-14 22:07:51

(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) |
给主人留下些什么吧!~~