我是Js OOp的新手。
我正在阅读OOP
JS
function Dog(name) {
this.name = name;
this.age = age;
this.bark = function() {
console.log("Woof");
}
}
中使用原型的地方
好的,这是一个例子
Dog doberman = new Dog;
现在我的问题是为什么我们不能只创建像这样的对象
var doberman = Object.create(dog);
这会创建一个新的Dog对象。
但是通过原型我们会做这样的事情
public static int[ ] Letters(string a) {
string p = "AĄBCČDEĘĖFGHIĮYJKLMNOPRSŠTUŲŪVZŽ"; // Lithuanian letters
int [ ]rez = new int[p.Length];
int ind = 0;
foreach (char r in a ) {
ind = p.IndexOf(r);
if (ind>=0)
rez[ind] ++;
}
return rez;
}
我读到函数可以分开,通过原型可以将它们添加到对象中。 请帮帮我。我很困惑..
问题很简单 为什么要将Object.prototype用于方法?
答案 0 :(得分:2)
现在我的问题是为什么我们不能只创建这样的对象:
print(star(4)) * *** *** *
你可以,实际上。您的Dog dog = new Dog;
函数也可以作为“构造函数”,如下所示:
Dog
我很欣赏这是令人困惑的,因为JavaScript提供了许多不同的做法(基本上)相同的东西,例如:
var doberman = new Dog( "Fenton" );
(尽管我的第一个示例创建了一个使用var doberman = { name: "Fenton", age: 5, bark: function() { return "woof"; } }
作为原型(一种继承)的新object
实例,而我的第二个示例创建了一个只有实例的新Dog
实例-level属性不是继承的,但是由于JavaScript的鸭子类型很少有差异很重要(尽管在高性能的JavaScript中总是更喜欢原型构造函数而不是实例级属性)。