Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问名为关键字';在';反对?_Javascript_Jquery_Object - Fatal编程技术网

Javascript 如何访问名为关键字';在';反对?

Javascript 如何访问名为关键字';在';反对?,javascript,jquery,object,Javascript,Jquery,Object,我有如下JavaScript对象的一部分: animation:{ "in":{ "effect":"flipInY" }, "out":{ "effect":"bounceOut" }, "typeout":{ "shuffle":true }, "minDisplayTime":"2000", "loop":true } 动画是较大对象(不是简单对象)的一部分。 真正的目标是:

我有如下JavaScript对象的一部分:

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);