在JavaScript属性名称允许短划线?

我正在寻找http://docs.jquery.com/Plugins/Authoring#Defaults_and_Options为jQuery创build一个简单的插件。 在关于选项和设置的部分之后,我做了以下操作,但没有成功(脚本在遇到设置时退出)。

var settings = { 'location' : 'top', 'background-color': 'blue' } ... $this.css('backgroundColor', settings.background-color); // fails here 

一旦我从背景颜色中删除短划线,事情就可以正常工作。

 var settings = { 'location' : 'top', 'backgroundColor': 'blue' // dash removed here } ... $this.css('backgroundColor', settings.backgroundColor); 

我错过了什么,或者是jQuery文档错误?

没有。 parsing器将把它解释为减法运算符。

你可以做settings['background-color']

settings.background-color更改为settings['background-color']

variables不能包含-因为它被读作减法运算符。

在JavaScriptvariables中,虚线是不合法的。 variables名称必须以字母,美元符号或下划线开头,后面跟着相同或数字。

你可以在string中有破折号。 如果你真的想保持这种短跑,你必须使用括号和内容来引用属性:

 $this.css('backgroundColor', settings['background-color']);