首页 > Web开发 > 详细

懵懂的js原型

时间:2016-12-30 18:17:26      阅读:188      评论:0      收藏:0      [点我收藏+]

说起原型,就得提起函数,js中据说是这样定义的,每个函数都有一个prototype 属性,(这个属性啊,又是个对象)。为了构造函数能复用,就引出了原型,要把共享的东西放到原型上去。例如

 

//构造函数,是个人的话,应该就有年龄,性别,名字,和人应该就有的天性,吃

function  Person(name,age,sex){

 

       this.name=name,

      this.age=age,

     this.sex=sex,

     this.eat=function(){

      alert(‘吃饭‘);

}

}

//实例一下

var p=new Person(‘dag‘,19,‘男‘);

var p1=new Person(‘fff‘,30,‘女‘);

 

p.eat();//吃饭

p1.eat();//吃饭

console.log(p.eat===p1.eat);//false

以上得出结论:虽然p.eat()与p1.eat() 运行出来的结果都是一样的,但是他们的函数确实不一样的,这样对计算机内存来说就是浪费,明明可以一个人搬到的事,为啥要找俩人呢。

 

由此引出原型 prototype,将共享出来的东西放到原型上

 

改为 :Person.prototype.eat=function(){

          alert(‘吃饭‘);

}

 

再对比 p和p1两个对象

p.eat();//吃饭

p1.eat();//吃饭

console.log(p.eat===p1.eat);//true

说明 不管创建多少个对象,对象都是去找这个构造函数的原型上的方法。

 

懵懂的js原型

原文:http://www.cnblogs.com/daiwenru/p/6237549.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!