如何从以下页面中提取JavaScript函数?

时间:2012-02-08 20:00:39

标签: javascript

我正在尝试按照本教程

http://eloquentjavascript.net/chapter8.html

它提到了一个函数inPlacePrinter。我在实际文本中找不到此源代码。我已经尝试在视图源中浏览,因为交互式版本似乎工作但无法找到原始代码。我怎么找到它?

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

在oo.js中有这一行:

var div = __ENV.parent.DIV();

__ ENV未在其他地方定义,也未在任何其他js文件中定义,可能是页面上使用的MochiKit框架的一部分。

您可以使用这2个函数替换inPlacePrinter(),以便在浏览器控制台中显示输出:

function show(x){
    var show = "";
    for (var y = 0; y < arguments.length; y++) {
        show += arguments[y];      
    }
    console.log(show);
}

function showTerrarium(terrarium){
    this.show(terrarium);

return function() {
      console.clear();
      this.showTerrarium(terrarium);
   }  
}

以这种方式使用它们

/*replace:*/ terrarium.onStep = partial(inPlacePrinter(), terrarium);
/*with:*/    terrarium.onStep = partial(showTerrarium(terrarium), terrarium);

也许有更好的解决方案,但这很有效。

答案 2 :(得分:0)

尝试使用类似Firebug的内容来查看JavaScript文件。

答案 3 :(得分:0)

这是一个很棒的教程。这个声明大约是页面的一半:

但是所有这些额外的变量都会变得混乱。另一个好的解决方案是使用类似于第6章中的partial的函数。不是向函数添加参数,而是使用函数的apply方法的第一个参数添加一个this对象:

第6章中的函数inPlacePrinter是否为 partial 对象?