谷歌搜索但沒有找到合適的資源來解釋使用啓示模塊模式和this
關鍵字之間的區別。啓示模塊模式和簡單構造函數的區別
當使用透出模塊模式,我可以有下面的代碼:
var moduleRevealing = function() {
var talk = function() {
console.log("Talking....");
};
var walk = function() {
console.log("Walking...");
};
return {
talk: talk,
walk: walk
}
};
console.log('Module Pattern Object');
console.log(moduleRevealing());
現在可以如下使用this
關鍵字來實現同樣的事情:
var module = function() {
var talk = function() {
console.log("Talking....");
};
this.walk = function() {
console.log("Walking...");
};
this.talk = talk;
};
var mod1 = new module();
console.log('Module Object');
console.log(mod1);
如何都不同?我只能看到一個區別,那就是__proto
;前者指向Object
,後者指module
。
如果有人要的看到代碼 - Fiddle
'moduleRevealing'函數不應該用'new'調用。你從哪裏找到這樣的東西? – Bergi
@Bergi謝謝你指出。我的錯誤,糾正了它。當我返回一個對象時沒有意義。 – Shubh
順便說一句,是的,原型繼承是工廠函數和構造函數之間的所有區別。如果沒有要繼承的屬性,則應使用工廠。 – Bergi