【发布时间】:2022-08-16 04:24:09
【问题描述】:
我一直在阅读原型(只有函数具有的prototype 属性,以及所有对象都具有的__proto__)。
我的困惑是为什么我们首先需要prototype 属性。
取下面的代码sn-p:
function Dog(breed) {
this.breed = breed;
}
let dog1 = new Dog(\'chow\');
我理解的方式,函数也是 JS 中的对象。含义 Dog 函数实际上是一个对象。一个“函数对象”。
那么为什么不是 dog1 的__proto__,只是 Dog “函数对象”?为什么需要另一个对象“Dog.prototype”作为中介?
代替:
dog1 -> Dog -> global Object
我们正在做:
dog1 -> Dog.prototype -> global Object
↘
Dog -> global Function Object
-
作为猜测,我会说这是因为
this绑定。this并不意味着你认为它的意思,特别是如果你来自更理智的 OOP 语言,如 C++ 或 C#。
标签: javascript function inheritance prototype