我正在为Jquery创建一个插件,需要将一个变量作为对象的键。
$(selector).animate({self.settings.direction: '+='+self.displacement+'px'}, "slow" , function () {});
这部分导致了错误:
self.settings.direction
有任何想法,我的语法哪里错了吗? 谢谢
我正在为Jquery创建一个插件,需要将一个变量作为对象的键。
$(selector).animate({self.settings.direction: '+='+self.displacement+'px'}, "slow" , function () {});
这部分导致了错误:
self.settings.direction
有任何想法,我的语法哪里错了吗? 谢谢
据我所知,你不能这样做。在对象字面量表示法中,冒号前面的任何内容都会被自动解释为字符串。因此,您需要事先构建对象,并使用方括号表示法。
var options = {}
options[self.settings.direction] = '+=' + self.displacement + 'px';
$(selector).animate(options, "slow" , function () {});
编辑:现在您可以:
const prop = "foo"
const bad = { prop: "bar" } // { prop: "bar" }
const good = { [prop]: "bar" } // { foo: "bar" }
所以,您想知道如何从JavaScript中的数组中删除特定值吗?
$(selector).animate({ [self.settings.direction]: '+='+self.displacement+'px'}, "slow" , function () {});
var a = 'key';
var b = 'value';
var test = JSON.parse('{"' + a + '":"' + b + '"}"');
//test = {key: 'value'}
JSON.parse('{\"' + a + '\":\"' + b + '\"}')
。 - Demircan Celebivar obj = new Object;
obj.a = 0;
obj.b = 1;
var a = "b";
obj["a"]; // will output 0
obj[a.toString()] // will output 1
.toString()
的调用是不必要的。变量a
已经是一个字符串了。你只需要删除引号:http://jsfiddle.net/FJCFW/。 - Travesty3$(selector).animate({settings: {direction: '+='+self.displacement+'px'}}, "slow" , function () {})