快速Javascript继承:理解__proto__

Dav*_*ave 1 javascript inheritance prototype-programming

鉴于以下构造函数,

Dog = function(name, age, ...){
    Animal.call(this, name, age, ...);
    // And some other stuff that dogs do
}
Run Code Online (Sandbox Code Playgroud)

我使用以下代码行从Animal类中复制我的方法和属性,

Dog.prototype = new Animal();
Run Code Online (Sandbox Code Playgroud)

你能不能告诉我它有何不同之处

Dog.prototype.__proto__ = Animal.prototype;
Run Code Online (Sandbox Code Playgroud)

因为它们似乎具有相同的效果.

Fel*_*ing 5

__proto__允许您访问[[Prototype]]对象的内部属性.它可用于获取或设置现有对象的原型.

protoype是设置的原型的函数的属性的对象被创建由该函数.

Afaik,只有Firefox让你使用__proto__.它不是标准的,也不推荐使用.


值得阅读: