“拉开”函数返回中的Javascript对象

时间:2013-05-29 20:48:33

标签: javascript jquery

我正在使用一个jQuery插件,它有返回对象的方法。我的术语在这里有些不稳定,所以我将尝试演示:

$(this).myplugin({
    mouseMove: function(data){
        //Do something
    }
});

在这种情况下,“数据”将是一个返回有关鼠标位置信息的对象。我习惯使用一种语言来分解数据结构,即写:

mouseMove: function({x,y})

这实际上似乎在Firefox中有效(我可以继续使用变量x和y就好了),但在Chrome中打破了我的脚本。

每次我想访问这些内容时,是否必须使用data['x']data['y'],还是有更简单的方法?

2 个答案:

答案 0 :(得分:4)

代替data['x'],您可以撰写data.x

但JavaScript 1.7提供了某种模式匹配:

mouseMove: function({x: x, y: y}) {
    console.log(x);
}

然后

mouseMove({x: 2, y: 10});

应输出2到日志。

MDN了解详情。

答案 1 :(得分:1)

你可以使用唯一略微更短data.xdata.y

来做到这一点

例如:

mouseMove: function(data){
   var localX = data.x;
   //do whatever
}