Javascript:将字符串解释为对象引用?

标签 javascript

Possible Duplicate:
Javascript use variable as object name

如何让 JS 将字符串视为对先前定义的对象的引用?简化:

var myObject = new MyObject();

var myString = "myObject";

var wantThisToWork = myString.myproperty;

最佳答案

如果变量在全局范围内,则可以将其作为全局对象的属性进行访问

var a = "hello world";
var varName = "a";
console.log( window[varName] ); // outputs hello world
console.log( this[varName] ); // also works (this === window) in this case

但是,如果它是局部变量,唯一的方法是使用 eval ( disclaimer )

function () {
  var a = "hello world";
  var varName = "a";
  console.log( this[varName] ); // won't work
  console.log( eval(varName) ); // Does work
}

除非您可以将动态变量放入对象中并像属性一样访问它

function () {
  var scope = {
    a: "hello world";
  };
  var varName = "a";
  console.log( scope[varName] ); // works
}

关于Javascript:将字符串解释为对象引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10953303/

相关文章:

javascript - jQuery 并仅在每 200 次滚动时获取滚动位置

javascript - Next Js - Providers/getProviders() - FetchError - 下一个构建

javascript - 检测 html 元素何时退出屏幕

javascript - 即使页面呈现,也会出现 "Cannot read property ' asMutable' of undefined"错误

javascript - 当函数已有参数时如何获取调用者元素的引用

javascript - 如何使用 javascript 将人员选择器数据 (DisplayText) 添加到类型 'person or group' 的列中?

javascript - $('#xxl' ) angular.js 中 jquery 选择器的等价物是什么

javascript - Youtube iframe api 未触发 onYouTubeIframeAPIReady

javascript - 传单上的 Bootstrap 行

javascript - 在文本区域字段中设置焦点和突出显示