某处构造函数定义为
var Something = function() {
// do stuff
}
如果我可以插入行
mydebug.Something = this;
一开始,我可以存储最近创建的Something
实例,这可以帮助我调试。我不能,但是我通过Something
(函数及其名称)并且可以用其他东西替换它。我只是不知道如何使“别的东西”表现得像原作一样。
function intercept(someConstructor, someName) {
return function <<someName>> () { // 1
var result = <<create a new instance>>; // 2
mydebug[someName] = result;
return result;
}
}
将被称为
intercept(Something, "Something")
至少有两个问题:
答案 0 :(得分:0)
1:
根据您存储该功能的位置,您不必在拦截实施中为其命名。
您可以执行return function () { ...
或者您可以执行与someObject[someName] = function()...
类似的操作,然后返回someObject[someName]
。
2:
如果我理解正确,你应该能够var result = new someConstructor();
,但我并不是100%明确你的目标。