我想了解JavaScript中的'類'。模擬'類'時,爲什麼要在.prototype屬性中設置方法,而不是在構造函數本身中?
在JavaScript通常模擬類看起來是這樣的:
function MyClass(someParameter) {
this.someValue = someParameter;
this.someOtherValue = "green";
}
MyClass.prototype.someMethod = function() {
console.log("Hello!");
};
雖然非成員函數被設置在構造函數中,該方法是在構造函數之外增加,到構造的.prototype
財產。
我想了解爲什麼。爲什麼不在構造函數內部創建方法,就像其他成員一樣?含義:
function MyClass(someParameter) {
this.someValue = someParameter;
this.someOtherValue = "green";
this.someMethod = function() {
console.log("Hello!");
}
}
http://stackoverflow.com/questions/1635116/javascript-class-method-vs-class-prototype-method – adeneo
有在類中沒有這樣的事情JavaScript的。但是有一些方法可以創建一個對象。 (http://www.phpied.com/3-ways-to-define-a-javascript-class/) –
原型上的屬性由所有實例共享**。您在構造函數中分配給'this'的屬性是不同的。您可以在構造函數中設置函數值屬性,並且可以在原型上設置非函數值屬性。 – Pointy