Backbone - Chrome 从触发器调用的调试函数
Backbone - Chrome debug function called from trigger
Backbone 允许您触发其他 类 中的函数 - 如果您正确使用 Backbone.Events.
a.js
MyApp.vent.on("some:trigger", function(){
// ...
});
b.js
function test(){
doSomething();
MyApp.vent.trigger("some:trigger");
}
您知道在调试 doSomething() 后达到函数 "some:trigger" 的一些方法吗? (无需在代码中找到它并在其上放置断点)。
可以使用Debugging JavaScript by Redefining Functions的概念。这本质上就是覆盖原函数,注入一个debugger
语句,之后再调用原函数继续正常执行。
例子
我使用了命名函数而不是匿名函数,以便以后参考。
MyApp.event.on("some:trigger", myFunc);
现在我可以存储原始函数的副本,以便在调试后调用。
var oldFunc = myFunc;
myFunc = function() {
debugger; // or use console.log()
return oldFunc.apply(this, arguments);
}
这可以在控制台或代码段中调用,这样下次您运行代码时,它就会中断(或在 console.log
语句的情况下记录输出)。
好处
这样做的好处是,无论触发器处理程序在代码中执行了多少地方,或者执行了多少次,它总是会中断。您不必使用调试器控件逐步执行所有以前的代码。对于单个案例,单步执行就足够了。
您可以blackbox Backbone 代码。然后,当您进入 MyApp.vent.trigger("some:trigger")
时,Chrome 将跳过所有 Backbone 代码并直接转到您的处理程序代码。
上面链接的文档使事情变得有点复杂。您所要做的就是在源代码查看器中右键单击 Backbone 文件,然后 select "Blackbox Script"。然后进入 trigger
调用。
Backbone 允许您触发其他 类 中的函数 - 如果您正确使用 Backbone.Events.
a.js
MyApp.vent.on("some:trigger", function(){
// ...
});
b.js
function test(){
doSomething();
MyApp.vent.trigger("some:trigger");
}
您知道在调试 doSomething() 后达到函数 "some:trigger" 的一些方法吗? (无需在代码中找到它并在其上放置断点)。
可以使用Debugging JavaScript by Redefining Functions的概念。这本质上就是覆盖原函数,注入一个debugger
语句,之后再调用原函数继续正常执行。
例子
我使用了命名函数而不是匿名函数,以便以后参考。
MyApp.event.on("some:trigger", myFunc);
现在我可以存储原始函数的副本,以便在调试后调用。
var oldFunc = myFunc;
myFunc = function() {
debugger; // or use console.log()
return oldFunc.apply(this, arguments);
}
这可以在控制台或代码段中调用,这样下次您运行代码时,它就会中断(或在 console.log
语句的情况下记录输出)。
好处
这样做的好处是,无论触发器处理程序在代码中执行了多少地方,或者执行了多少次,它总是会中断。您不必使用调试器控件逐步执行所有以前的代码。对于单个案例,单步执行就足够了。
您可以blackbox Backbone 代码。然后,当您进入 MyApp.vent.trigger("some:trigger")
时,Chrome 将跳过所有 Backbone 代码并直接转到您的处理程序代码。
上面链接的文档使事情变得有点复杂。您所要做的就是在源代码查看器中右键单击 Backbone 文件,然后 select "Blackbox Script"。然后进入 trigger
调用。