将不存在的属性的引用分配给变量
Assign reference of a non-existent property into a variable
这可能是
一个愚蠢的问题,但我有一个对象,我想在其中存储其他函数/变量的引用,然后使用它们。
例如
var obj = {
keyA: {
ref: window.objects.someAAA
},
keyB: {
ref: window.objects.someBBB
}
}
在这里,当我设置这个对象时,window.objects
是空的,所以访问这些键(someAAA
和someBBB
)会得到undefined
。
我知道当我第一次想到像这样分配它们并期望它们在加载后通过obj.keyA
和obj.keyB
提供它们的实际值时,我很愚蠢。但显然,它们仍然包含undefined
.
但是有没有办法做到这一点!我知道如果我设置字符串而不是引用,我可以eval
,但有更好的解决方案吗?
认为这应该有效
var obj = {
keyA: {
ref: function() { return window.objects.someAAA; }
},
keyB: {
ref: function() { return window.objects.someBBB; }
}
}
然后,您可以通过以下方式访问
obj.keyA.ref()
测试
添加上面的代码,然后做
window['objects'] = {};
window['objects']['someAAA'] = 'Hallo';
obj.keyA.ref() // will Output 'Hallo'
在这种情况下尝试使用 Getters:
var obj = {
get keyA(){
return (window['objects'])? window.objects.someAAA : null
},
get keyB() {
return (window['objects'])? window.objects.someBBB : null
}
}
// as now window.objects doesn't exists
console.log(obj.keyA); // outputs "null"
window.objects = {'someAAA': "aaa-value", 'someBBB': "bbb-value"};
console.log(obj.keyA, obj.keyB); // outputs "aaa-value" "bbb-value"
相关文章:
- Javascript 将变量分配给警报
- Javascript变量分配-按类别
- 为变量分配多个nodejs导出返回值时出现问题
- 使用Javascript中的回调处理变量分配
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 使用一个表达式将两个变量分配给相同的值
- 将变量分配给函数在JavaScript中不起作用
- 如何在yahoo weather中将变量分配到javascript src脚本中
- 服务变量分配了数据,但在访问时始终未定义
- 如何在用户单击提交按钮时为变量分配任意值
- 将JavaScript变量分配给同一页面上的PHP变量
- Javascript是否为具有未定义值的变量分配32位内存
- 为变量分配回调函数
- 如何在javascript中为单个变量分配多个值
- 将全局变量分配给以下 Javascript
- 如何将变量分配给链接中包含的信息?(Javascript/HTML)
- 如果我为 JS 变量分配一个新值,它会破坏它的绑定吗?
- 如何将 javascript 变量分配给隐藏的输入
- 为变量分配有限集合中的随机元素
- 如何使用由多行组成的 django 模板变量分配 javascript 变量