JavaScript

图形解析【原型链】相关概念

2019-08-04  本文已影响0人  Aniugel

一、原型链概念:

函数的原型对象(prototype
原型对象的构造函数(constructor
内部原型(_proto_

image.png
image.png
image.png
  function Dog() {
        this.name = 'tom';
    }
    var d = new Dog();
    Dog.prototype.age = 20;
    console.log('d.__proto__', d.__proto__)//实力的内部原型
    console.log('Dog.prototype', Dog.prototype)//构造函数的原型对象
    console.log('d.__proto__===Dog.prototype', d.__proto__ === Dog.prototype)//true 构造函数的原型对象
    console.log('d', d)//实例
    console.log('d.__proto__', d.__proto__.__proto__.__proto__)//null

js是基于原型的面向对象语言,也就是说所有对象都是基于原型上进行创建,而不像java和c#等语言是基于一个类型的模板创建。

函数都有prototype属性指向函数的原型对象。【只有函数根除外】

image.png
image.png

所有的对象都有proto属性(非标准属性,但是所有浏览器都实现了。【null除外】)

image.png

Object是构造函数,也是对象。Object的prototype是所有对象的根

image.png

Function是函数对象的构造函数。Function的原型对象是所有函数的根。而它的内部原型是Object的原型对象

image.png

总结构图:

image.png
可参考链接https://www.jianshu.com/p/4fa9f405b774
上一篇下一篇

猜你喜欢

热点阅读