Javascript在对象回调中设置对象属性
Javascript setting object property inside object callback
我正试图在另一个对象的回调方法中设置一个对象(摘要)
returnObj.beforeLoadComplete = function (records) {
var someObj = {
total: {
label: 'Items',
value: '15'
},
additional: [{
label: 'Item1 Total',
value: '25000'
}]
};
returnObj.summary = summaryObj;
// some other code which finally returns an object
}
上述代码不起作用(即summary
未设置在returnObj
上)
然而,如果我在回调方法之外有相同的代码,它的工作方式如下代码片段所示:
var someObj = {
total: {
label: 'Items',
value: '15'
},
additional: [{
label: 'Item1 Total',
value: '25000'
}]
};
returnObj.summary = summaryObj;
returnObj.beforeLoadComplete = function (records) {
// some other code which finally returns an object
}
不确定为什么会这样。
您必须使用这个语句访问您的对象,我还纠正了一些拼写错误:
var returnObj = {};
returnObj.beforeLoadComplete = function (records) {
var someObj = {
total: {
label: 'Items',
value: '15'
},
additional: [{
label: 'Item1 Total',
value: '25000'
}]
};
// Access object with this
this.summary = someObj;
// some other code which finally returns an object
}
returnObj.beforeLoadComplete('records');
console.log(returnObj.summary);
更新:添加了代码片段,以验证是否可以通过回调处理程序中的此访问returnObj
。
var returnObj = {};
returnObj.beforeLoadComplete = function () {
var someObj = {
total: {
label: "Items",
value: "15"
},
additional: [{
label: 'Item1 Total',
value: '25000'
}]
};
this.summary = someObj;
// some other code which finally returns an object
}
//returnObj.beforeLoadComplete();
function verifyObjectUpdated(){
alert(returnObj.summary);
}
<select onChange="returnObj.beforeLoadComplete()">
<option>Trigger onChange to add summary to your returnObj</option>
<option>Trigger onChange to add summary to your returnObj</option>
</select>
<select onChange="verifyObjectUpdated()">
<option>Trigger onChange to alert summary of returnObj ( do it after adding summary)</option>
<option>Trigger onChange to alert summary of returnObj ( do it after adding summary)</option>
</select>
只需在对象内部使用this
:
var res = {
foo: 'bar',
setSmth: function(data) {
this.summary = data
}
}
res.setSmth({bar: 'foo'})
console.log(res.summary)
请参阅jsfiddle
相关文章:
- 从每个父对象获取attr,并为每个子对象设置attr
- 用javascript为预定义对象设置原型
- Kendo UI数据源使用javascript对象设置
- 正在对通过object.create创建的对象设置原型
- 用对象设置函数变量's值
- 将对象设置为Backbone.js模型,而不必调用“;set()"在每一处房产上
- 将对象设置为Chrome存储
- 如何为不同的对象设置不同的灯箱
- 如何在基于json数据的Javascript中为网页上的多个对象设置动画
- 三.js - 如何为对象设置边框
- 将节点.js对象设置为从文件读取的数据
- Javascript:在为动态创建的对象设置 onClick 处理程序时避免 eval()
- 如何从另一个 json 对象为 json 对象设置值
- 为具有未定义值的嵌套对象设置默认值的最简单方法
- 如何为嵌套对象设置状态
- 将对象设置为jquery中attr()方法的值
- 如何为对象设置默认函数
- 通过全局对象设置骨干木偶模型
- 无法对未定义的对象设置属性
- 为我的对象设置空值