Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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(主干)-false何时为空对象?_Javascript_Backbone.js - Fatal编程技术网

Javascript(主干)-false何时为空对象?

Javascript(主干)-false何时为空对象?,javascript,backbone.js,Javascript,Backbone.js,我试图在一个新的Assemble.io项目中重新使用一些示例Javascript代码。我有一个main.js文件,它创建了一个主干视图的实例。视图的initialize函数的第一个参数的值在main.js中被确定为布尔值,如下所示: new MyView(typeof myFunc != "undefined", anotherVar); 在最初的示例中(wihch我在Apache中作为虚拟主机运行),这一切的行为都是可以理解的。在我的新项目(这是一个Assembly.io站点,通过grnt

我试图在一个新的Assemble.io项目中重新使用一些示例Javascript代码。我有一个main.js文件,它创建了一个主干视图的实例。视图的initialize函数的第一个参数的值在main.js中被确定为布尔值,如下所示:

new MyView(typeof myFunc != "undefined", anotherVar);
在最初的示例中(wihch我在Apache中作为虚拟主机运行),这一切的行为都是可以理解的。在我的新项目(这是一个Assembly.io站点,通过grnt contrib connect提供服务)中,如果第一个参数的计算结果为false,则MyView.initialize接收到的是一个空对象,
{}
。即使移除测试,我也会看到这一点,并执行以下操作:

new MyView(false, anotherVar);
按预期传递值true(或任何其他值,如字符串、数组等)

这对某人有意义吗?

从主干网:

如果构造函数的第一个参数的计算结果为
false
,则在调用
initialize
之前将其替换为空对象

编辑:

重新指定
选项
会改变
参数
对象,这有点奇怪,但使用以下函数进行测试可以证实这一点:

  function checker (options) {
    console.log(arguments);
    options || (options = {});
    console.log(arguments);
  }

不,这对我来说没有意义。也许你需要更多的调试?
MyView
的源代码是什么?关于您的编辑:。只要为它提供了参数,
options
就是
参数[0]
的getter/setter。谢谢!我正在试图理解这个问题的答案,最好有一个简单明了的解释。getter/setter在步骤11.c.ii.2-4中定义。注意:
options | |(options={})
的意思与
相同,如果(!options)options={}感谢您深入了解这一点,这很有帮助-这至少帮助我理解为什么false变得{}我必须尝试进行更多的调试,以找出为什么(似乎)相同的代码在我的两个场景中产生不同的结果
  function checker (options) {
    console.log(arguments);
    options || (options = {});
    console.log(arguments);
  }