在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']);