美文网首页
原型和原型链

原型和原型链

作者: jrg陈咪咪sunny | 来源:发表于2017-12-06 15:01 被阅读0次

构造函数

特点:一般函数名是大写开头,就是构造函数。(良好的书写习惯,受人待见。)


构造函数.png

this是空对象,然后赋值。

构造函数 - 扩展

  • var a = {}其实是 var a = new Object()的语法糖
  • var a = []其实是 var a = new Array()的语法糖
  • function Foo(){...}其实是 var Foo = new Function(...)
  • 使用 instanceof 判断一个函数是否是一个变量的构造函数。
    (判断一个变量是否为“数组”:变量 instanceof Array)

原型规则和示例

5条原型规则:原型规则是学习原型链的基础

  • 所有引用类型(数组,对象,函数),都具有对象特性,即可自由扩展属性(除了 “null”意外)


    图片.png
  • 所有引用类型(数组,对象,函数),都有一个proto(隐式原型)属性,属性值是一个普通的对象

    图片.png
  • 所有的函数,都有一个prototype(显示原型)属性,属性值也是一个普通对象


    图片.png
  • 所有引用类型(数组,对象,函数),porto属性值指向他的构造函数的'portotype'的属性值

    图片.png
    图片.png
  • this :通过对象属性的形式去执行函数,还是自身的属性,还是从原型中得到的属性,他执行的函数的this,永远指向(对象本身)f自身。


    图片.png
  • for ( in )循环对象自身的属性


    图片.png

原型链

图片.png
图片.png

instancof

  • f instanceof Foo的逻辑是:
  • f 的proto一层一层往上,能否对应到Foo.portotype
  • 再试着判断f instanceof Object

相关文章

网友评论

      本文标题:原型和原型链

      本文链接:https://www.haomeiwen.com/subject/mnjkixtx.html