'js难点之prototype、__proto__和constructor'

如何理解他们三个直接的爱恨情愁呢?

打开chrome浏览器,按一下F12,在控制台里面输入一下内容。

1
2
3
function F(){} 
var f = new F;
f

结果如下:

__proto__是单向指针,指向父类的prototype,用来形成原型链。
constructor 是每个对象的构造方法。(当然对象还有其他方法)
prototype 存在于每个对象的构造方法——constructor里面

  • 所有对象都属于Object的子类,所以所有对象都有Object对象的属性和方法。比如toString()、valueOf等方法和属性
  • Object.prototype的原型对象是null
    1
    console.log(Object.prototype.__proto__ == null);//true

    参考资料

    Javascript继承机制的设计思想