JavaScript可以’;t设置变量–;范钦普特例子

JavaScript可以’;t设置变量–;范钦普特例子,javascript,Javascript,我有以下代码(): 当我尝试在控制台中执行以下代码时,它抛出一个TypeError: var x = FancyInput({"a":1}) 错误: TypeError:无法设置未定义的属性“options” 为什么它不能设置变量?如果我以前用this调用它,它会工作 this.FancyInput({"a":1}) FancyInput是一个构造函数;必须使用new操作符来构造对象new创建一个新的FancyInput对象,并将其绑定到构造函数中的this var x = new Fanc

我有以下代码():

当我尝试在控制台中执行以下代码时,它抛出一个
TypeError

var x = FancyInput({"a":1})
错误:

TypeError:无法设置未定义的属性“options”

为什么它不能设置变量?如果我以前用
this
调用它,它会工作

this.FancyInput({"a":1})

FancyInput
是一个构造函数;必须使用
new
操作符来构造对象
new
创建一个新的
FancyInput
对象,并将其绑定到构造函数中的
this

var x = new FancyInput({a: 1});

严格模式会特别捕获此错误,当调用没有上下文的函数而不是全局对象时,该模式会将
This
设置为
undefined
。顺便说一下,这就是你使用
this.FancyInput所做的,它是不正确的。

使用
new FancyInput({a:1})
我不知道strict模式的tihs属性,当调试Chrome时,在构造函数中将
this
指定为
窗口
对象,这让我感到困惑。顺便说一句,谢谢你改进我的问题。
var x = new FancyInput({a: 1});