Backbone允许您在其他类中触发函数 - 如果正确使用Backbone.Events。
const getNextAlphaString = function (str) {
"use strict";
str=str.toUpperCase();
let chars;
chars = str.split("");
const strLen = str.length;
let continueIncermenting = true;
for (let i = strLen - 1; i >= 0; i = i - 1) {
let asciiVal;
asciiVal = chars[i].charCodeAt(0);
if (isNaN(asciiVal)) {
return str;
}
if (continueIncermenting === true) {
if (asciiVal >= 48 && asciiVal < 57) {
chars[i] = String.fromCharCode(asciiVal + 1);
continueIncermenting = false;
break;
} else if (asciiVal == 57) {
chars[i] = '0';
continueIncermenting = true;
}
if (asciiVal >= 65 && asciiVal < 90) {
chars[i] = String.fromCharCode(asciiVal + 1);
continueIncermenting = false;
break;
} else if (asciiVal == 90) {
chars[i] = String.fromCharCode(65);
continueIncermenting = true;
}
} else {
if (asciiVal == 90) {
continueIncermenting = true;
chars[i] = String.fromCharCode(65);
}
if (asciiVal == 57) {
continueIncermenting = true;
chars[i] = '0';
}
}
}
if (continueIncermenting === true) {
let firstAcii = chars[0].charCodeAt(0);
if (isNaN(firstAcii)) {
return str;
}
if ((firstAcii >= 65 && firstAcii <= 90) || (firstAcii >= 97 && firstAcii <= 122)) {
return 'A' + chars.join('').toUpperCase();
}
if (firstAcii >= 48 && firstAcii <= 57) {
return '0' + chars.join('').toUpperCase();
}
}
return chars.join('').toUpperCase();
};
你知道某种方式达到这个功能吗?有些人:触发&#34;调试doSomething()之后? (无需在代码中找到它并在其上设置断点)。
答案 0 :(得分:1)
您可以使用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
语句的情况下记录输出。)
这样做的好处是,触发处理程序执行代码的位数无关紧要,或者它总是会破坏多少次。您不必使用调试器控件单步执行所有以前的代码。对于单个案例,单步进行就足够了。
答案 1 :(得分:1)
您可以blackbox Backbone代码。然后,当您进入MyApp.vent.trigger("some:trigger")
Chrome时,Chrome会跳过所有Backbone代码并直接转到您的处理程序代码。
上面链接的文档过于复杂了一些事情。您所要做的就是右键单击源查看器中的Backbone文件,然后选择“Blackbox Script”。然后进入trigger
电话。