(function(){ var name="Jim"; function privateFunction(){ return name;
}
Person=function(){}
Person.prototype.publicGetName=function(){ return privateFunction();
} var person=new Person();
alert(person.publicGetName());
})()//返回Jim高程上说,初始化未经声明的变量,总是会创建一个全局变量,也就是上述代码中的Person=function()。因此,这里的Person就成了一个全局变量,能够在私有作用域之外被访问到。
现在有个问题,既然这里的Person是一个全局变量,那把这行代码放到全局作用域会咋样呢?
变更后的代码如下:
var Person=function(){}
(function(){ var name="Jim"; function privateFunction(){ return name;
} // Person=function(){}
Person.prototype.publicGetName=function(){ return privateFunction();
} // var person=new Person();
// alert(person.publicGetName());
})() var person=new Person();
alert(person.publicGetName());再次调用,出现错误:Uncaught TypeError: (intermediate value)(...) is not a function
求大神赐教,为啥还报错呀?不是说是全局变量嘛?
慕森王
相关分类