我正在学习js,我遇到了一个例子,其中|| 在将var声明为函数时使用:
var Triangulation = Triangulation || (function() {
...
Run Code Online (Sandbox Code Playgroud)
在我看来,这是检查在分配var之前是否已经声明了var.环顾网络,我没有看到使用这种方法的任何其他示例.采取这种方法的原因是什么?
var Triangulation = function() {
...
Run Code Online (Sandbox Code Playgroud)
谢谢
Rub*_*mov 19
这意味着triangulation变量已经定义的可能性,如果是,triangulation变量返回自身,如果尚未定义 - 匿名函数将返回新变量的值triangulation.
并且有重要/敏感的东西var.这是一项棘手的业务.例如:
<script>
var triangulation = function (){return(1);};
</script>
Run Code Online (Sandbox Code Playgroud)
实际意味着:
<script>
window.triangulation = function (){return(1);};// because "triangulation" is in global
// namespace and "var" in this case
// means nothing "local", as you may expect
</script>
Run Code Online (Sandbox Code Playgroud)
下次,初始化var triangulation = ...将覆盖全局变量.如果你想保留它,你必须写:
var triangulation = triangulation || function (){...};
Run Code Online (Sandbox Code Playgroud)