1

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

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

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

mouseMove: function({x,y})

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

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

4

2 回答 2

4

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

但是 JavaScript 1.7 提供了某种模式匹配,如下所示:

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

进而

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

应该输出 2 到日志。

在MDN阅读更多关于它的信息。

于 2013-05-29T20:58:44.670 回答
1

你可以用稍微短一点data.x的来做到这一点data.y

例如:

mouseMove: function(data){
   var localX = data.x;
   //do whatever
}
于 2013-05-29T20:54:07.640 回答