比方说,我有下面的代码,这我不能修改有没有办法从JavaScript中的引用覆盖构造函数?
var namespace = {};
function() {
var MyConstructorFunction = function() {
alert("default behavior");
};
namespace.MyConstructorFunction = MyConstructorFunction;
setTimeout(function() {
var instance = new MyConstructorFunction();
}, 1000)
}();
我想在全球范围内从中我只能访问namespace
制作instance
与构建外部添加一些代码alert("custom behavior")
;
只是为了澄清我的意图,让我们说,我可以认为这两个aproaches的:
namespace.MyConstructorFunction = function() {
alert("custom behavior");
};
或
namespace.MyConstructorFunction.prototype.constructor = function() {
alert("custom behavior");
};
但显然他们没有工作。有没有办法做到这一点?
如果你说你想改变公司在'setTimeout'调用,则没有构造函数。那里使用的变量对立即调用的函数是本地的。你不能碰那个变量,而且函数本身是不可变的,所以真的没有办法做到这一点。 –