饥人谷技术博客

原型与原型链

2019-04-01  本文已影响4人  养乐多__

一、公用属性(原型)

公用属性意义:不重复声明一样的属性,不浪费内存。

  1. 理解公用属性
    (1)以对象为例: var o = new Object(),对象只存自己的 key(属性),共有的属性不存,而是用 __proto__ 去指向共有属性。内存图展示:
    Object 公用属性内存图 代码展示: Object 共用属性举例
    (2)以 Number 为例:var n = new Number(1) ,以下几个属性是只有 Number 类才共有的属性:

toFixed:确定有几位小数
toExponential:科学计数法
toString(16):Number 的 toString 接受参数(进制),与Object 的不同

内存图展示:

Number 公用属性内存图 代码展示: Number 公用属性举例
(3)其他类也是这样,先通过__proto__先指向自己这一类的共有属性,再通过__proto__指向 Object 的共有属性,形成一条原型链,如下图所示:
原型
  1. 共用属性放在哪

二、__proto__prototype

  1. 语法形式
var 对象 = new 函数()
// 例:var n = new Number()
对象.__proto__ === 函数.prototype
//例: n.__proto__ === Number.prototype
  1. 推论
    对象.__proto__ === 函数.prototype知,对象的__proto__指向构造它的函数的prototype,我们由此推论出:
函数.prototype.__proto__ === Object.prototype
函数.__proto__ === Function.prototype
Function.__proto__ === Function.prototype
Function.protoype.__proto__ === Object.prototype
上一篇 下一篇

猜你喜欢

热点阅读