我有以下IFFE,它在第一次调用时创建了一个上下文对象
$_(document)
结果:obj {context:document}
但是在第二次通话中我得到了一个错误
$_(document)
未捕获的TypeError:对象不是函数
作为刚刚熟悉基本概念的人,我想知道这种行为的原因
$_ = (function(){
var obj = function (context){
this.context = context
}
return function(context){
return new obj(context)
}
}())
答案 0 :(得分:-1)
typeof $_
等于“function”,当我们发送一个上下文作为参数时,它构造一个带有key-word new的对象并返回该对象,因此它显示一个带有对象文档引用的对象