jquery protoType

模拟JavaScript中类和继承 在面向对象的语言中,咱们使用类来建立一个自定义对象。然而JavaScript中全部事物都是对象,那么用什么办法来建立自定义对象呢?函数

这就须要引入另一个概念 - 原型(prototype),咱们能够简单的把prototype看作是一个模版,新建立的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是连接,只不过这种连接是不可见,给人们的感受好像是拷贝)。this

让咱们看一下经过prototype建立自定义对象的一个例子:prototype

// 构造函数 function Person(name, sex) { this.name = name; this.sex = sex; } // 定义Person的原型,原型中的属性能够被自定义对象引用 Person.prototype = { getName: function() { return this.name; }, getSex: function() { return this.sex; } } 这里咱们把函数Person称为构造函数,也就是建立自定义对象的函数。能够看出,JavaScript经过构造函数和原型的方式模拟实现了类的功能。 建立自定义对象(实例化类)的代码:对象

var zhang = new Person("ZhangSan", "man"); console.log(zhang.getName()); // "ZhangSan" var chun = new Person("ChunHua", "woman"); console.log(chun.getName()); // "ChunHua" 当代码var zhang = new Person("ZhangSan", "man")执行时,其实内部作了以下几件事情:继承

建立一个空白对象(new Object())。 拷贝Person.prototype中的属性(键值对)到这个空对象中(咱们前面提到,内部实现时不是拷贝而是一个隐藏的连接)。 将这个对象经过this关键字传递到构造函数中并执行构造函数。 将这个对象赋值给变量zhang。ip