是否可以引用JS数组/对象中的另一个元素
Is it possible to refer to another element inside a JS array/object
不知怎么的,我找不到合适的术语来搜索这个问题,基本上我想用javascript:来做这件事
var demo = [{part1: 'a', part2: 'b', part3: this.part1 + this.part2}];
现在我认为这是不可能的,但由于我无法确定为什么以及如何称呼这个结构,也许这里的人可以。
- 对于这种情况,有没有一个术语或准确的描述
- 这能在js中解决吗
谢谢!
编辑:
由于评论,我需要更具体一点:
var demo = [
{
text: 'long text',
action: function(xy) { log(text);}
},
{
text: 'long text2',
action: function(xy) { log(text);}
},
];
目标是让操作记录用它定义的文本。
第二版:由于@EnigmaRM几乎清除了所有内容,这是一个奖励
而不是
demo[1].action()
解决它,而行动是这样称的:
var someCaller = demo[1].action;
someCaller();
您可以很容易地拆分动态部分demo.part3
或demo.action
,并在定义对象后调用它。
var demo = {
text: 'long text',
};
demo.action = function(xy){console.log(this.text)};
类似地,
var demo = {part1: 'a', part2: 'b'};
demo.part3 = demo.part1 + demo.part2;
// {part1: "a", part2: "b", part3: "ab"}
如果你想保持你的对象数组格式
var demo = [{
part1: 'a',
part2: 'b',
part3: function(){return this.part1 + this.part2;}
}
];
然后在使用part3
时,您将其称为demo[0].part3()
,这将给您'ab'
你不断地修改你想要完成的事情。这是您最新编辑的更新示例。
var demo = [
{
text: 'long text',
action: function(xy) {
console.log(this.text);
}
},
{
text: 'long text2',
action: function(xy) {
console.log(this.text);
}
}
];
调用&结果
demo[0].action() // long text
demo[1].action() // long text2
编辑2答案
var someCaller = demo[1].action();
someCaller; //long text2
我相信您希望demo[1].action()
的结果传递给变量,而不是像当前那样将整个函数分配给变量。因此,只要将()
添加到赋值中,就会调用函数来运行并将结果传递给someCaller
。
因为我们使用了this
,所以需要这样做。它总是引用它所引用的父对象。因此,如果执行var someCaller = demo[1].action
,则this
现在引用"somecaller",而该"somecallor"不具有原始demo
对象的其他属性,因此获得undefined
。
是的,
var newObj = { part1: 'a', part2: 'b' };
newObj.part3 = newObj.part1 + newObj.part2;
demo = [newObj];
或
var demo = [{part1: 'a', part2: 'b', part3: demo[0].part1 + demo[0].part2}];
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 要求定义另一个文件中的对象
- AngularJS:如何用同一对象的另一个属性访问一个属性
- 替换另一个变量对象中的变量值
- 如何使用jQuery添加另一个对象的高度作为边距
- 计算从一个对象到另一个对象的路径并沿其移动
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- 将对象从另一个不可变的Map分配给Map是否意味着深度克隆
- AngularJS从对象中获取另一个值的方法
- JSON:在另一个JSON对象中重用JSON对象
- 用javascript创建另一个对象的实例
- JS/ANGULAR使用一个变量's值作为另一个对象的键
- 将原型调用为新对象中的另一个原型
- 通过引用Javascript中的另一个函数来传递对象方法
- 将另一个文件中的对象添加到单独文件中的阵列中
- 为什么在JavaScript中可以从另一个日期对象中减去日期对象
- 将一个javascript对象推送到另一个javascript对象中
- 为什么在Javascript中将一个对象分配给另一个变量也会更改初始对象
- 如何将LatLng对象与数组中的另一个对象进行比较
- 是否可以创建一个对象,该对象是另一个对象的子集,而不会丢失javascript中的引用