码迷,mamicode.com
首页 > 其他好文 > 详细

prototype之初印象

时间:2014-12-17 12:25:57      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:ar   io   sp   java   on   log   bs   cti   new   

还没开始看js的时候经常会听群里的朋友说到原型,每当别人说的时候自己都不知道别人在说什么,最近在自己看书,记了点笔记,希望可以记住自己学习的印记,哪里写的不对的地方,希望路过的大牛指点一下。

function Person(name,age,job){
  this.name=name;
  this.age=age;
  this.job=job;
  this.friend=["alice","tom","jack"];
}//定义一个构造函数

Person.prototype={
  constructor:Person,
  bf:"jjj",
  sayName:function(){
    console.log(this.name);
  }
}//通过原型给构造函数追加属性

var person1=new Person("aaa",29,"web");
var person2=new Person("bbb",30,"java");
person1.bf="fafag"; //更改person1的bf属性的值

console.log(person1.bf===person2.bf); ===>返回false
console.log(person1.friend===person2.friend); ===>返回false
console.log(person1.sayName===person2.sayName); ===>返回true

 

prototype在构造函数不可更改属性的情况下用(自己的见解,比较浅显,如有不对望指正)
可以Person.prototype给Person中的所有实例属性,每个属性可以更改对应的值。
friend是构造函数中一直都有的属性,在新建Person对象的时候重新给了一个内存,新建第二个的时候仍然是给了一个新的内存。所以即使没给person1.friend和person2.friend传值,console.log(person1.friend===person2.friend)也返回false。

 

prototype之初印象

标签:ar   io   sp   java   on   log   bs   cti   new   

原文地址:http://www.cnblogs.com/czyblog/p/4168836.html

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