var ninja = {
yell: function yell(n){
return n > 0 ? yell(n-1) + "a" : "hiy";
}
};
assert( ninja.yell(4) == "hiyaaaa", "Works as we would expect it to!" );
var samurai = { yell: ninja.yell };
var ninja = {};
assert( samurai.yell(4) == "hiyaaaa", "The method correctly calls itself." );
Run Code Online (Sandbox Code Playgroud)
此代码块取自John Resig的JS教程.我想知道的是,为什么他包括倒数第二行?那里忍者的目的是什么?
Pat*_*shu 10
本教程显示删除对象的引用不会删除对象本身.
ninja包含函数的函数yell被显示为删除了该函数的引用,而引用仍然存在于不同的变量中samurai.samurai即使ninja不再有函数调用函数,也会显示对象持久存在引用它们的变量之后不再这样做.