首页 > 编程知识 正文

js原型链解,js原型链最顶层

时间:2023-05-05 14:56:18 阅读:226059 作者:4759

1.1 什么是原型?

    概念:1.每一个函数都有一个prototype属性,即显示原型

            2.每一个实例对象都有一个__proto__属性,即隐式原型

           3.每一个实例对象的隐式原型__proto__属性,即执行自身构造函数的prototype

        4.每一个prototype原型都有一个constructor属性,指向它关联的够造函数

      

1.2怎么定义?

通常使用构造器(函数体)定义属性,使用原型对象(prototype)定义方法。

如此,构造器只包含属性定义,而方法则分装在不同的代码块,使代码更具可读性:

// 构造器内定义属性function Fun(a, b) { this.a = a; this.b = b;}// 原型属性定义方法Fun.prototype.c = function() { return this.a + this.b;}// etc...注意,千万不要使用字面量方式来定义属性和方法,否则原有属性和方法会被重写:function Fn() {};// 定义属性Fn.prototype.a = 1;Fn.prototype.b = 2;// 字面量定义方法,原型被重写,原有属性和方法被更新Fn.prototype = { c : function() { return this.a + this.b; }}var foo = new Fn();foo.c(); // NaNfoo.a; // undefinedfoo.b; // undefined

1.3.三者之间的关系

2.1原型链

获取对象属性时,如果对象本身没有这个属性,那就会去他的原型__proto__上去找,如果还查不到,就去找原型的原型,一直找到最顶层(Object.prototype)为止。Object.prototype对象也有proto属性值为null

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。