码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中的原型继承

时间:2016-06-08 20:24:31      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

原型链:
Object(构造函数)	object(类型(对象))
var o = {};
alert(typeof o);        //结果是object
alert(typeof Object);   //结果是function

 每一个对象有一个属性叫  __proto__ ,这个属性就是这个对象的原型(o. __proto__

对象有原型,原型也是对象,所以原型也有原型
所有的函数都是对象,继承自Function.prototype,
Function.prototype是对象,继承自Object.prototype,
Object.prototype是对象,继承自null

obj是对象,继承自Object.prototype

Function是对象,继承自Function.prototype
Function是函数,继承自Function.prototype


js成员的访问规则
o.方法()
首先在o当前这个类型中寻找该成员的定义,如果存在该成员的定义,
那么就直接使用改成员;
如果该成员不再当前类型中,就访问其原型(原型链中的上一级)
以此类推,直到null位置



代码示例:
不使用继承:
var Person = function() {
    this.say = function() {
        alert("你好");
    };
};
var p1 = new Person();
var p2 = new Person();

alert(p1.say === p2.say);   //结果为false
每new一个对象,就会创建一块新的内存,所以p1.say和怕p2.say并不是引用的同一个地址

使用原型继承:
var Person = function() {
};
Person.prototype = {
    say:function(){
        alert("Mr靖");
    }
};
var p1 = new Person();
var p2 = new Person();
p1.__proto__.name = "Mr靖";

alert(p1.say === p2.say);      //结果是true
alert(p2.name);                //结果为"Mr靖"

 

 

 
 

JavaScript中的原型继承

标签:

原文地址:http://www.cnblogs.com/doforfuture/p/5571167.html

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