如何在john resig的高级javascript教程

时间:2015-05-19 01:30:59

标签: javascript

当我阅读约翰的教程时,有很多'断言'和& 'log'功能,我知道他们能做什么,但我不知道如何定义这两个功能。 我试过了,但失败了。

    function assert(){return console.log;}

3 个答案:

答案 0 :(得分:2)

logassert很可能与console.logconsole.assert完全相同。但是,如果您希望logassert可以调用这些函数,请尝试以下操作:

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。除非你打印"进入文件。