我有下面的代码,并且一直在尝试和阅读,但无法弄清楚如何循环参数数组/对象,并将键值对设置为“this”,以便我可以按照下面代码中的最后一行。
我相信这是因为作用域的原因,当它在 for 循环中时,“this”不再引用我的函数,但是我怎样才能获得其中的作用域呢?我发现您可以将其作为辅助参数添加到 foreach 循环中,但我无法让 foreach 循环在关联数组上工作......
我希望能够访问传递给函数 batman 的数组中的任何值,稍后,按照我的示例显示的打印 lname 的方式。
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...
最佳答案
你的意思是这样吗?您的问题似乎在于解析 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...
关于javascript - JavaScript 循环中的访问范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53174573/