码迷,mamicode.com
首页 > Web开发 > 详细

js之prototype理解

时间:2016-11-13 13:31:13      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:name   共享   false   function   比较   构造函数   理解   prot   san   

  我们创建的每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法,也就是说这个prototype通过调用构造函数而创建的那个对象实例的原型。使用原型的好处就是可以让所有对象实例共享它所包含的属性和方法。

  例子,通过构造函数创建对象与通过原型模式创建比较。

  通过构造函数创建:

function Person(name, age) {//构造函数 首字母一般大写。
  this.name = name;
  this.age = age;        
  this.sayName = function() {
      alert(this.name);  
  }
}

var p1 = new Person(‘zhangsan‘, 21);
var p2 = new Person(‘lisi‘, 21);
alert(p1.sayName == p2.sayName);//false
//为什么为false,主要是因为每个方法都会在每个实例上重新创建一遍

   原型模式:

function Person(name, age) {
  this.name = name;
  this.age = age;  
}
Person.prototype.sayName = function() {
alert(this.name);
}

var p1 = new Person(‘zhangsan‘,21);
var p2 = new Person(‘lisi‘, 21);
alert(p1.sayName = p2.sayName);//true

 

  

  

js之prototype理解

标签:name   共享   false   function   比较   构造函数   理解   prot   san   

原文地址:http://www.cnblogs.com/lanweijava/p/6058350.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!