0
var Foo = (function() {
var cls = function() {
this.prototype = {
sayhi: function() {
alert('hi');
}
};
};
cls.staticMethod = function() {};
return cls;
})();
var f = new Foo();
爲什麼我不能訪問我的sayhi
方法? this
是否參考cls
變量?在變量實例上訪問原型方法
很好的回答。你知道我在這裏錯過了什麼http://jsfiddle.net/6Wqsm/3/?輸出是'cls {}, cls {sayhi:function}',但不是都使用相同的原型,因此應共享'sayhi'函數? – 2013-03-28 09:45:57
不,因爲每次調用'cls'時原型都會覆蓋一個新對象。在構造函數中設置原型會導致各種問題。例如,在你的例子中嘗試'window.f instanceof foo' - 它會返回'false'。 – 2013-03-28 09:58:53
哦,我沒有考慮覆蓋部分。謝謝。 – 2013-03-28 10:01:39