我有下面的代码,并且一直在尝试并正在阅读,但仍无法弄清楚如何遍历params数组/对象,并将键值对设置为'this',这样我就可以按照我下面的代码的最后一行。
我相信是因为有作用域,当它在for循环中时,'this'不再引用我的函数,但是如何在其中获得作用域?我发现可以将它作为辅助参数添加到foreach循环中,但是我无法在关联数组上使用foreach循环。...
稍后,我希望能够以我的示例显示输出lname的方式访问传递给函数batman的数组中的任何值。
function batman(id,params){
this.id=id;
for(.....params.....){
// this.key=val;
}
}
x=new batman("my_id",{fname:"jason",lname:"bourne"});
console.log("id: "+x.id); // works fine
console.log("fname: "+x.fname); // would like to get this to work...
答案 0 :(得分:2)
您的意思是这样吗?看来您的问题是解析params
对象中的键/值对。运行代码片段以查看其工作原理...
function batman(id,params){
this.id=id;
for(var key in params){
this[key]=params[key];
}
}
x=new batman("my_id",{fname:"jason",lname:"bourne"});
console.log("id: "+x.id); // works fine
console.log("fname: "+x.fname); // hey look! this works fine now...
答案 1 :(得分:1)
您可以在forEach
的键上使用params
来设置其属性。
为了遵守约定,我已将batman
更新为Batman
。
function Batman(id,params){
this.id=id;
Object.keys(params).forEach(key => this[key] = params[key])
}
x=new Batman("my_id",{fname:"jason",lname:"bourne"});
console.log("id: "+x.id); // works fine
console.log("fname: "+x.fname); // would like to get this to work...