js立即执行函数问题

用的微信名称 2017-11-01 11:04:53
在网上看了很多例子说立即执行函数是为了避免污染全局变量,防止外部修改模块里的变量,例如:
var MyString = function(str){
this.content = str;
};

var name = new MyString("hanMeimei");
var addr = new MyString("China");
console.log(name.content + " live in " + addr.content);
在该例子中实际上name是window对象里的属性,但是Window对象原来就包含了name的属性,为了避免这样的问题出现,可以采用立即执行函数
(function(){
var name = new MyString("hanMeimei");
console.log(name.content); //正确,输出hanMeimei
})();
我觉得直接这样就行了
function(){
var name = new MyString("hanMeimei");
console.log(name.content); //正确,输出hanMeimei
}
也可以避免上述问题,为什么需要使用立即执行函数
...全文
247 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
当作看不见 2017-11-01
  • 打赏
  • 举报
回复
你的这个会直接报错,而且没有执行, (function(argument1){ //xxx })(argument1); 而 function(){},首先语法错误,哪怕语法允许这样,也还是错的,没有执行,使用 ()才能执行函数.
Go 旅城通票 2017-11-01
  • 打赏
  • 举报
回复
你申明个函数不执行不是多次一举?

Web开发学习资料推荐
JavaScript apply与call的用法
配置chrome支持本地(file协议)ajax请求
functionsub 2017-11-01
  • 打赏
  • 举报
回复
怎么说呢,你觉得就行了的那样,没什么问题,但那样你只是声明了并没有执行。 换个说法应该好理解点,就好比你要做一件事,不过你只是说了出来,并没有实际去做。
天际的海浪 2017-11-01
  • 打赏
  • 举报
回复
你这样只是声明个函数,函数只是声明,并没有执行。 而且function出现在行首是作为一个语句的,就必须有函数名。

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧