本地vars javascript模块模式
Local vars javascript module pattern
如何引用私有函数中的局部变量?例如,在下一个代码中,在函数myDisplay中,我如何获得show函数对象的对象myObject并获得id="B"?
var charge = (function($){
var open = function(){
var myObj = {
id: 'A'
};
};
var show = function(){
var myObj = {
id: 'B'
};
myDisplay();
};
function myDisplay(){
//Here, how to refer to var myObj of show function object?
}
return {
open: open,
show: show
};
})(jQuery);
作用域背后的全部思想是你不能。CCD_ 1对于存储在CCD_ 2中的函数是私有的。
此外,在这个特定的例子中,myObj
甚至不存在,除非对show()
的调用实际上正在进行中。考虑一下这一点。它甚至在myDisplay()
调用期间都不存在。(对show()
的两个不同调用将分别具有不同的myObj
实例。)
如果您希望外部函数和显示共享数据,请将myObj
移到外部作用域-与ret
所在的作用域相同。
var charge = (function($) {
var myObjA = {
id: 'A'
};
var myObjB = {
id: 'B'
}
var open = function() {
};
var show = function() {
myDisplay();
};
function myDisplay() {
console.log(myObj);
//Here, how to refer to var myObj of show function object?
};
return {
open: open,
show: show
};
})(jQuery);
我建议您使用这样的模块模式。而且,因为javascript关闭了。您无法随心所欲地读取myObj。我为您提供了一个解决方案,希望您喜欢!
相关文章:
- Javascript,访问一个主要对象模块模式中的每个对象
- 模块模式和这个
- 显示模块模式在Knockout中设置模型的新实例
- Javascript中的模块模式和揭示模块模式是否仅在创建API时有用;s
- 用于多个选项卡和模块化的knockoutjs设计模式
- JavaScript模块模式-如何在使用对象/函数之前激发构造函数/init函数
- TypeScript代码类似于揭示模块模式结构
- 为什么在javascript中的模块模式中实现Lazy函数时范围会发生变化
- JavaScript:模块模式差异
- 显示模块模式中的私有成员
- 如何将window.setTimeout与javascript和模块模式一起使用
- j查询模块模式未命名 |如何访问“$”
- 挖空和显示模块模式的数据绑定问题
- 传递参数时如何避免模块模式中的 getter/setter 函数
- 将变量传递给 Javascript 模块化模式方法
- JavaScript 模块模式给出了意想不到的结果
- 从模块模式开始
- 试图通过模块模式在DOM元素上实现change()事件
- 揭示模块模式、KnockoutJS和CoffeeScript
- JavaScript 设计模式:模块模式和揭示模块模式之间的区别