首页 > 解决方案 > JavaScript 循环中的访问范围

问题描述

我有下面的代码,并且一直在尝试并一直在阅读,但无法弄清楚如何遍历 params 数组/对象,并将键值对设置为“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...

标签: javascript

解决方案


你的意思是这样吗?您的问题似乎在于解析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...


推荐阅读