我有这个存储一堆变量的模块模式。我想创建一个可以返回任何给定 var 的函数(真正的模块具有真正的功能——这只是一个精简版)。
var myObject = (function() {
var _savings = '100',
_year = new Date().getFullYear(),
_phone = '1-800-555-1234';
return {
getMe: function(param) {
return eval(param);
}
一个示例用法是 myObject.getMe('phone');
会弹出“1-800-555-1234”
我想避免使用 eval(),因为它太邪恶了。
谢谢!
最佳答案
在 javascript 中,object.field
等同于 object["field"]
。
现在,这里的问题是您创建了一些不属于对象的私有(private)变量,因此访问它们会很棘手。
另一种方法是这样的:
var myObject = (function() {
var _privates = {
savings: '100',
year: new Date().getFullYear(),
phone: '1-800-555-1234'
};
return {
getMe: function(param) {
return _privates[param];
}
}())
关于javascript - 避免在此模块中进行评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160590/