Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象方法的Javascript范围_Javascript_Function_Object_Methods_Anonymous - Fatal编程技术网

对象方法的Javascript范围

对象方法的Javascript范围,javascript,function,object,methods,anonymous,Javascript,Function,Object,Methods,Anonymous,我想问一下,为什么忍者被删除后,仍然可以调用武士.yell? 这是否意味着通过给对象方法一个名称,副本将成为“深度副本”,而匿名函数将只执行“浅层副本” 谢谢,函数也是对象。 当忍者创建yell函数对象时,稍后在代码中您将由武士引用它。现在您有了对同一(函数)对象的两个引用。后来你“删除”了忍者(这两位裁判之一),但你仍然持有武士的参考资料。似乎完全是同一个问题:教程显示删除对对象的参考并不会删除对象本身。正如切尔尼夫提到的,答案可以在这里找到是的,完全是,谢谢! var ninja = {

我想问一下,为什么忍者被删除后,仍然可以调用武士.yell? 这是否意味着通过给对象方法一个名称,副本将成为“深度副本”,而匿名函数将只执行“浅层副本”


谢谢,函数也是对象。
当忍者创建yell函数对象时,稍后在代码中您将由武士引用它。现在您有了对同一(函数)对象的两个引用。后来你“删除”了忍者(这两位裁判之一),但你仍然持有武士的参考资料。

似乎完全是同一个问题:
教程显示删除对对象的参考并不会删除对象本身。
正如切尔尼夫提到的,答案可以在这里找到是的,完全是,谢谢!
var ninja = {
  yell: function yellaaa(n){
    return n > 0 ? yell(n-1) + "a" : "hiy";
  }
};

var samurai = { yell: ninja.yell };
var ninja = null;
assert( samurai.yell(4) == "hiyaaaa", "The method correctly calls itself." );