我是 Js OOp 的新手。
我在某处读到原型(prototype)用于 OOP
在JS
好的,这是一个例子
function Dog(name) {
this.name = name;
this.age = age;
this.bark = function() {
console.log("Woof");
}
}
现在我的问题是为什么我们不能创建这样的对象
Dog doberman = new Dog;
这会创建一个新的 Dog 对象。
但是通过原型(prototype)我们做了这样的事情
var doberman = Object.create(dog);
我读到这些函数可以分离,并且可以通过原型(prototype)将它们添加到对象中。 请帮助我。我很困惑..
问题很简单 为什么使用 Object.prototype 作为方法?
最佳答案
Now my question is why can't we just create objects like this:
Dog dog = new Dog;
事实上,你可以。您的 Dog
函数也充当“构造函数”,如下所示:
var doberman = new Dog( "Fenton" );
我明白这很令人困惑,因为 JavaScript 提供了许多不同的方法来完成(本质上)相同的事情,例如:
var doberman = { name: "Fenton", age: 5, bark: function() { return "woof"; } }
(尽管我的第一个示例创建了一个新的 object
实例,该实例使用 Dog
作为原型(prototype)(一种继承),而我的第二个示例创建了一个新的 object
实例仅具有不被继承的实例级属性,尽管由于 JavaScript 的鸭子类型,很少有差异很重要(尽管在高性能 JavaScript 中总是更喜欢原型(prototype)构造函数而不是实例级属性) .
关于javascript - 为什么我们在 JS 面向对象编程中使用 Prototype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33250738/