javascript - 有人可以解释 Javascript 经典模块模式以及我们为什么要使用它吗?
问题描述
我遇到了这段代码,我不明白这是怎么回事,然后我删除了IIFE括号并且console.log不再起作用,有人可以解释这是怎么回事,它被称为经典模块模式. 为什么我们要使用它?
var foo = (function(){
var publicAPI = {
bar: function(){
publicAPI.baz()
},
baz: function(){
console.log('baz')
}
}
return publicAPI
})()
foo.baz()
foo.bar()
删除 IIFE 括号 console.log 不再起作用。
var foo = function(){
var publicAPI = {
bar: function(){
publicAPI.baz()
},
baz: function(){
console.log('baz')
}
}
return publicAPI
})
非常感谢您。
解决方案
鉴于:
foo = function () {}
foo
是那个功能。
鉴于:
foo = function () {}();
foo
是该函数的返回值。
如果您不调用该函数,则foo
获得不同的值。
推荐阅读
- mysql - 公司中的父子站分层
- loops - 从 Jinja2 中的变量列表访问全局列表
- random - 如何让这个圆阵列出现在平行四边形的边界内?
- intellij-idea - 如何在全球范围内更改 intellij 字体大小?
- javascript - 如何使用 AJAX 将参数从 1 个 HTML 页面传递到另一个 HTML 页面?
- php - 将自定义配置文件数据添加到订单
- apache-flink - Flink 的 readFile API 如何维护状态?
- javascript - bcryptjs 在猫鼬模式方法中不起作用
- reactjs - 反应我想改变我传递的道具中的样式
- string - 显示数据中的 PHP 字符串问题