在查看 John Resig 的示例时,我想使用 Qunit 重写他的断言示例。一切都很顺利,直到我到达#55。在 Johns 示例中,要通过测试,“c”(第 7 行)必须等于“未定义”,现在根据我的示例中的 Qunit,“c”必须等于8。我用console.logs包围了“c”测试,两者都产生未定义。这是jsbin。有人可以解释发生了什么吗?我不明白...
以防 jsbin 无法访问,这是我的代码:
var a = 5;
function runMe(a){
'use strict';
test('a', function(){
strictEqual(a, 6, 'Check the value of a.');
});
function innerRun(){
test('b', function(){
strictEqual(b, 7, 'Check the value of b.');
});
console.log(c);
test('c', function(){
//the problem seems to be here
strictEqual(c, 8, 'Check the value of c.');
});
console.log(c);
}
var b = 7;
innerRun();
var c = 8;
}
runMe(6);
for ( var d = 0; d < 3; d++ ) {
setTimeout(function(){
test('d', function(){
strictEqual(d, 3, 'Check the value of d.');
});
}, 100);
}
但是,如果我将 console.log 放在“c”测试中,它会注销 8。