JavaScript原型和原型链

2019-03-07  本文已影响0人  前端咸蛋黄
  1. 当 new 一个函数的时候会创建一个对象,被创建对象.__proto__=== 函数.prototype
var object = {}
object.__proto__ ===  Object.prototype

var fn = function(){}
fn.__proto__ === Function.prototype

var array = []
array.__proto__ === Array.prototype

true.__proto__ === Boolean.prototype
  1. 一切函数都是由 Function 这个函数创建的,被创建的函数.__proto__ === Function.prototype
Function.__proto__ === Function.prototype
Array.__proto__ === Function.prototype
Object.__proto__ === Function.prototype
  1. 一切函数的原型对象都是由 Object 这个函数创建的,所以一切函数.prototype.__proto__ === Object.prototype
Function.prototype.__proto__ === Object.prototype
Array.prototype.__proto__ === Object.prototype
  1. 特殊情况
//因为
arr.__proto__ = Function.prototype
array.__proto__.__proto__ === Object.prototype
//所以
Function.prototype.__proto__ === Object.prototype

总结,JavaScript 只有一种结构:对象。每个实例对象(object )都有一个私有属性(称之为__proto__)指向它的原型对象(prototype)。该原型对象也有一个自己的原型对象(__proto__) ,层层向上直到一个对象的原型对象为 null。这叫做原型链
null 没有原型,并作为这个原型链中的最后一个环节。

上一篇下一篇

猜你喜欢

热点阅读