18 javascript
这可能是一个愚蠢的noob问题,但是:在以下上下文中表示:
var stuffToDo = {
'bar' : function() {
alert('the value was bar -- yay!');
},
'baz' : function() {
alert('boo baz :(');
},
'default' : function() {
alert('everything else is just ok');
}
};
if (stuffToDo[foo]) {
stuffToDo[foo]();
} else {
stuffToDo['default']();
}
Run Code Online (Sandbox Code Playgroud)
它是否将函数存储到每个变量中?
Fel*_*ing 35
这是一个对象文字 [MDN]:
var obj = {
key: value
};
// obj.key === value; // true
Run Code Online (Sandbox Code Playgroud)
它指定value一个属性key的obj.虽然对于value可以是什么没有限制(好吧,它必须是可分配的东西),但是存在以下限制key:它必须是标识符名称,字符串文字或数字文字.
更多细节可以在ECMAScript规范的第11.1.5节中找到.
字面符号类似于:
var stuffToDo = {}; // <-- empty object literal
stuffToDo.bar = function() {...};
// or stuffToDo['bar'] = ...
stuffToDo.baz = function() {...};
// or stuffToDo['baz'] = ...
Run Code Online (Sandbox Code Playgroud)
最大的区别在于,在使用对象文字时,您无法在声明期间访问对象的其他属性.
这不起作用:
var obj = {
foo: value,
bar: obj.foo
};
Run Code Online (Sandbox Code Playgroud)
这样做:
var obj = {};
obj.foo = value;
obj.bar = obj.foo;
Run Code Online (Sandbox Code Playgroud)
为了完整起见,JavaScript中还有两种冒号用法:
var val = condition ? true-value : false-value;
Run Code Online (Sandbox Code Playgroud)someLabel: var x = 5;
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
14899 次 |
| 最近记录: |