从Javascript中的对象调用东西有什么限制?

时间:2015-07-25 10:50:36

标签: javascript variables object

我遇到一行代码

    if(words[i].endsWith(oneD[x].ending))

作品,

    var thing = "oneD";
    if(words[i].endsWith([thing][x].ending))

没有按'吨。我希望他们都做同样的事情。

1 个答案:

答案 0 :(得分:2)

可以通过两种等效方式访问对象的属性:

obj.prop
obj['prop']

您的示例不起作用,因为您没有对象的属性,而是变量。

您的问题的解决方案可能来自以下事实:在全局范围中声明的变量也显示为全局对象的属性(在浏览器的情况下为window):

var ans = 42;
console.log(window.ans); // 42

因此,如果oneD是全局范围内的变量,则以下两行是等效的:

if(words[i].endsWith(oneD[x].ending))
if(words[i].endsWith(window['oneD'][x].ending))

显然,不是文字字符串'oneD',而是可以放置一个变量来计算该字符串(在您的示例中为thing)。