Javascript 如何访问名为关键字';在';反对?
我有如下JavaScript对象的一部分:Javascript 如何访问名为关键字';在';反对?,javascript,jquery,object,Javascript,Jquery,Object,我有如下JavaScript对象的一部分: animation:{ "in":{ "effect":"flipInY" }, "out":{ "effect":"bounceOut" }, "typeout":{ "shuffle":true }, "minDisplayTime":"2000", "loop":true } 动画是较大对象(不是简单对象)的一部分。 真正的目标是:
animation:{
"in":{
"effect":"flipInY"
},
"out":{
"effect":"bounceOut"
},
"typeout":{
"shuffle":true
},
"minDisplayTime":"2000",
"loop":true
}
动画
是较大对象(不是简单对象)的一部分。
真正的目标是:
console.log(JSON.stringify(datas));
给出:
{“text”:“example”,“font”:“Aclonica”,“size”:“50px”,“bgcolor”:“291C67”,“color”:“F1EC1C”,“align”:“center”,“animation”:{“in”:{“effect”:“flipInY”},“out”:{“effect”:“bounceOut”},“typeout”:{“shuffle”:true},“minDisplayTime”:“2000”,“loop”:true}
我想检索动画
对象的值以执行其他操作
“中的特殊键”会导致以下问题:
var animation=datas.animation;
if (animation.in.effect) $('#result') = animation.in.effect;
错误:
TypeError:动画不是函数
如果我这样做:
if (animation.out.effect) $('#result') = animation.out.effect;
结果是:“反弹”
我该怎么做?我无法更改“
中的关键字”
****抱歉,我重试了测试,它现在可以工作了。。谢谢大家。实际上,“in”不是一个特殊的关键字 不,是因为你打错了
改变
animation: {...}
到
忽略输入错误(缺少”
),您无法指定函数调用的结果,因此这是错误的:
if(animation.in.effect) $('#result') = animation.in.effect;
// ----------------------------------^ can't do that
您可以将其用作对从$()
获得的jQuery对象调用的某些函数的参数,例如:
if(animation.in.effect) $('#result').someFunctionhere(animation.in.effect);
这个问题并没有立即弄清楚是什么函数,但主要问题是试图分配给函数调用
(在2009年ES5之前,您不可能在该上下文中使用作为属性名称文字,因为中的是一个关键字。但您可以从ES5开始使用。在非常旧的ES5之前的环境和类似环境中,您需要使用动画[“in”]。效果
。但在任何模糊的现代web浏览器中都不能使用。)很可能不是这条线导致了问题。查找您有animation()
的地方,您可以尝试使用属性访问器,例如:animation[“in”]您缺少的“
in$(“#result)
我的真实代码中没有此错误。对不起,我在问题中做了更改。可能动画
也是更大对象的一部分。是的,动画是更大对象的一部分。对不起,我想缩短这个问题。我在问题中改变了它
if(animation.in.effect) $('#result').someFunctionhere(animation.in.effect);