我看到下面的樣式從一個構造函數返回一個公共接口返回一個公共接口:從JavaScript構造
function AnObjectConstructor() {
function localFunc() {};
function publicFunc() {};
// public interface
var _this = {
publicFunc: publicFunc
};
return _this;
};
我喜歡這種風格,因爲公共接口顯然是在一個地方,也localFunc能訪問publicFunc而不使用_this
此代碼還可以被寫成這樣:
function AnObjectConstructor() {
function localFunc() {};
function publicFunc() {};
// public interface
var _this = this;
_this.publicFunc = publicFunc;
return _this;
};
這兩種形式都意圖與使用新:
var obj = new AnObjectConstructor();
obj.publicFunc();
我不清楚這兩種形式是否相同,並希望有人能幫助我呢?
而且這種風格的任何一般性意見可以理解..
下面是關於繼承的相關討論:http://alexsexton.com/blog/2010/03/superclassy-inheritance-with-javascript-video/和類http://alexsexton.com/inheritance/demo/ – Homer6
通常,當您使用構造函數(使用new關鍵字)時,您將在原型上設置共享功能,以便它們不針對每個實例進行初始化。也許下面的答案會有幫助:http://stackoverflow.com/questions/16063394/prototypical-inheritance-writing-up/16063711#16063711 JavaScript不支持私有變量,並試圖使用閉包來創建它們是有代價的。這取決於你決定是否值得。 – HMR