0
我开始理解JavaScript的缺点,但是否有使用像这样的JavaScript对象的任何待遇。优点/不使用原型链和返回对象,而不是
var Person(name, age) {
var obj = {
species: "Homo sapien",
location: "Earth"
};
obj.name = name;
obj.age = age;
return obj;
}
var Mike = Person("Mike", 17); // => { ... name: "Mike", age: 17}
与标准
var personProtoype = {
name: "anon",
age: 0,
species: "Homo sapien",
location: "Earth"
}
var Person = function(name, age) {
this.name = name;
this.age = age;
}
Person.prototype = personPrototype;
var Mike = new Person("Mike", 17);
因为它似乎使用较少的代码,更容易实现和理解。第一种方法的“继承”也很简单。
var Student(name, age, major) {
var obj = Person(name, age); // => { ... name: name, age: age}
obj.major = major; // => { ... name: name, age: age, major: major}
return obj;
}
据我所知,以下并不使用原型链,只是简单地构造对象的函数。我只是想知道这样做是否有任何好处?也许有物体不会回望一个巨大的原型链? (如果这种行为是有史以来的)
欢迎使用stackoverflow!可能我建议你试试[搜索](http://stackoverflow.com/search?q=%5Bjavascript%5D+prototype+vs+this+object)。 SO上的这个问题已经有很多很好的答案。 [这](http://stackoverflow.com/questions/310870/use-of-prototype-vs-this-in-javascript)可能是你想要的。祝您好运:) –
谢谢您的光临!对不起,我一定会在下次检查时更彻底,但我认为下面的答案是我正在寻找的:)谢谢! – kjpark
您可能会对ES6中的类语法感到高兴:http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes –