var object = {font-size : 50,
font-name : 'seria',
fill : 'red'}
这样写是会报错的,原因就在于“-”符号,不能作为变量名。
有的时候使用jQuery的函数extend来为对象添加新属性,如果希望属性中有“-”就会有问题,不过可以改为:
var object = {};
$.extend = (object, {'font-size' : 50,
'font-name' : 'seria',
fill : 'red'});
这样就可以使用了。这是因为extend函数是使用“var name in options”来取出变量,操作时也使用[name],代码如下:
for ( var name in options ) {
var src = target[ name ], copy = options[ name ];
// Prevent never-ending loop
if ( target === copy )
continue;
// Recurse if we're merging object values
if ( deep && copy && typeof copy === "object" && !copy.nodeType )
target[ name ] = jQuery.extend( deep,
// Never move original objects, clone them
src || ( copy.length != null ? [ ] : { } )
, copy );
// Don't bring in undefined values
else if ( copy !== undefined )
target[ name ] = copy;
}
结果:所以如下代码是错误的:
var object = {'f-f':2};
alert(object.'f-f');
而如下代码是正确的,js的对象都是“键-值”形式的!
var object = {'f-f':2};
alert(object['f-f']);
没有评论:
发表评论