当我阅读约翰的教程时,有很多'断言'和& 'log'功能,我知道他们能做什么,但我不知道如何定义这两个功能。 我试过了,但失败了。
function assert(){return console.log;}
答案 0 :(得分:2)
log
和assert
很可能与console.log
和console.assert
完全相同。但是,如果您希望log
和assert
可以调用这些函数,请尝试以下操作:
function log(info){
console.log(info);
}
function assert(info){
console.assert(info);
}
然后你可以根据需要使用这些功能:
> log('Hello World')
Hello World
> log('foo bar')
foo bar
> assert(5==6)
Assertion failed:
> assert(5==5)
答案 1 :(得分:1)
assert
从他的书“Javascript Ninja的秘密”中引用这种方法 -
var output = document.getElementById('output');
function assert( outcome, description ) {
var li = document.createElement('li');
li.className = outcome ? 'pass' : 'fail';
li.appendChild( document.createTextNode( description ) );
output.appendChild(li);
};
如here所述。我认为log
只是console.log的一个包装函数,它确保该浏览器支持它,就像这样 -
function log(msg) {
if (console && console.log) {
console.log(msg);
}
}
答案 2 :(得分:0)
要从头开始实施assert
,您可以这样做:
function AssertionError(message) {
this.name = "AssertionError";
this.message = (message || "");
}
AssertionError.prototype = Error.prototype;
function assert(proposition, complaint) {
if (!proposition) throw new AssertionError(complaint);
}
您无法真正定义log
而不会回到console.log
。除非你打印"进入文件。