我不知道如何解釋我面臨的問題。我做了一小段片斷。請檢查以下內容:Javascript單例模式
var Package = {};
Object.defineProperty(Object.prototype, 'inherit',
{
value: function(Parent, args)
{
var temp = function(){};
temp.prototype = Parent.prototype;
this.prototype = new temp();
this.uber = Parent.prototype;
this.prototype.constructor = this;
},
enumerable: false
});
var Module1 = Package.Module1 = function() {
// code;
};
Module1.prototype.method1 = function() {
};
var Module2 = Package.Module2 = function() {
// code;
};
Module2.prototype.method2 = function() {
};
var Module3 = Package.Module3 = function() {
// code;
};
// using custom : object.prototype.inherit
// Module3 inherit Module1 and 2;
Module3.inherit(Module1);
Module3.inherit(Module2);
Module3.prototype.method3 = function() {
};
//creating object
var mod = new Package.Module3();
mod.method1();
mod.method2();
mod.method3();
創建國防部對象我可以訪問method1,2和3但實際上我想調用的方法,而無需創建對象,就像Package.Module3.method1();這怎麼可能?
不'Package.Module3'已成爲一個構造函數?您可以將它創建爲一個對象並將其分配給它。或者你將'Module3'的*實例*分配給'Package.Module3'。這完全取決於你想用它做什麼。 –
現在我有。但是可以避免。 –
單例可以是javascript中的對象文字。你沒有很好的使用new的變量實例。更多信息在這裏:http://blog.anselmbradford.com/2009/04/21/object-oriented-javascript-tip-the-quintessential-singleton/ –