javascript - JavaScript 循环中的访问范围

标签 javascript

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

相关文章:

javascript - 在 HTML 表单中实现下拉选项菜单的正确方法是什么?

javascript - Three.js 光线拾取平面/网格面段 v69

javascript - jQuery 选择器错误 : unrecognized expression

javascript - 如何将 Angular UI Bootstrap Accordion 分成多列?

javascript - 使用看起来拉伸(stretch)的 <canvas> 元素绘制的网格

javascript - 使用 jquery.().each 和 for 循环进行迭代失败

javascript - 如果沿 Google 路线路线显示标记(来自数据库)

javascript - 如何获取字符串形式的属性名称?

Javascript 散列两个数字

javascript - 计算表中元素的正确 offsetLeft 的 jQuery 方法