我正在尝试按照本教程
http://eloquentjavascript.net/chapter8.html
它提到了一个函数inPlacePrinter
。我在实际文本中找不到此源代码。我已经尝试在视图源中浏览,因为交互式版本似乎工作但无法找到原始代码。我怎么找到它?
答案 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 对象?