标签:
创建的每一个函数都有一个 prototype (原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。可以理解为:通过调用构造函数而创建的那个对象实例的原型对象。
使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。理解:不必再构造函数中定义对象实例的信息,而是可以将这些信息直接添加到原型对象中,如下例所示:
function Person(){ } Person.prototype.name = "wsc"; Person.prototype.age = 26; Person.prototype.job = "software engineer"; Person.prototype.sayName = function(){ alert(this.name); } var person1 = new Person(); person1.sayName();//"wsc" 这是直接调用原型对象Person中的sayName()函数对象; var person2 = new Person(); person2.sayName();////"wsc" 这是直接调用原型对象Person中的sayName()函数对象; alert(person1.sayName === person2.sayName);//true
1.理解原型对象
创建一个新函数,根据特定的规则,会自动为该函数创建一个 prototype 属性,这个属性指向函数的原型对象。
在默认情况下,所有原型对象都会自动获得一个constructor (构造函数) 属性,这个属性是一个指向 prototype 属性所在函数的指针。那前面的例子来说,Person.prototype.constructor 指向Person.而通过这个构造函数,还可以继续为原型对象添加其他属性和方法。
标签:
原文地址:http://www.cnblogs.com/wangshichuan/p/5891086.html