当然,大多数时候,我只需搜索标识符并查看其所有实例。通常,搜索“=”或“:”会找到最快的答案。
但是这种技术失败的情况是这样的:
// untested javascript:
function AddMemberToObject(object, value, memberName) {
object[memberName] = value;
}
var myObj = {}
// 3,000 references to myObj
// ... somewhere else
var mysteryString = thisMethodCallsAnotherMethodCallsAnotherMethodEtc();
AddMemberToObject(myObj, someFunction, mysteryString);
// 3,000 more references to myObj
假设我还没有发现上面的代码。如本例所示,一些使得很难找到定义成员的地方包括:
在这种困难的情况下,有哪些技术可以找到将成员添加到对象的位置?有没有办法在运行时执行此操作(例如,对对象进行所有添加会触发一个事件,我们可以在调试器中监听和中断事件)?