Javascript 当对象设置为null时,函数调用失败
有人能解释为什么这些Javascript失败了吗Javascript 当对象设置为null时,函数调用失败,javascript,Javascript,有人能解释为什么这些Javascript失败了吗 您在调用函数之前编写了ninja=null。 Javascript函数通过引用捕获外部变量,因此函数中的ninja标识符引用变量的当前值。调用函数之前编写的ninja=null。 Javascript函数通过引用捕获外部变量,因此函数内部的ninja标识符引用变量的当前值。此引用仍然保留: var samurai = { yell: ninja.yell }; 因此,调用.yell()是可以的,但是这个调用不是: return n > 0
您在调用函数之前编写了
ninja=null
。Javascript函数通过引用捕获外部变量,因此函数中的
ninja
标识符引用变量的当前值。调用函数之前编写的ninja=null
。Javascript函数通过引用捕获外部变量,因此函数内部的
ninja
标识符引用变量的当前值。此引用仍然保留:
var samurai = { yell: ninja.yell };
因此,调用.yell()
是可以的,但是这个调用不是:
return n > 0 ? ninja.yell(n-1) + "a" : "hiy";
该调用实际上引用了现在为null
的ninja
,并且null.yell()
不是函数:)
.此参考仍然保留:
var samurai = { yell: ninja.yell };
因此,调用.yell()
是可以的,但是这个调用不是:
return n > 0 ? ninja.yell(n-1) + "a" : "hiy";
该调用实际上引用了现在为null
的ninja
,并且null.yell()
不是函数:)
.
武士。yell
是来自忍者
的函数的“副本”。在该函数中,它引用了ninja
,当执行Samurai.yell
时,它不再存在。Samurai.yell
是ninja
函数的“副本”。在该函数中,它引用了ninja
,当执行Samurai.yell
时,ninja不再存在。递归函数调用使用yell()中的ninja引用,当您将其设置为null时,它将无法再调用ninja.yell,因为ninja为null
更改:
return n > 0 ? ninja.yell(n-1) + "a" : "hiy";
致:
递归函数调用使用yell()中的ninja引用,当您将其设置为null时,它将无法再调用ninja.yell,因为ninja为null 更改:
return n > 0 ? ninja.yell(n-1) + "a" : "hiy";
致:
它是有效的