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 –