Javascript 取消将字符串常量作为对象属性
谁能给我解释一下Crockford在谈到字符串常量时的意思吗 “当下标是合法标识符形式的字符串常量时,可以使用点表示法。” 他把常数称为对象属性,但如果它们的值可能随时发生变化,为什么要称之为常数呢 或者,他是否将这些称为常量,因为一旦定义了属性名,它就永远不会更改 如果我要根据他的话编写一个伪代码,我会这样做(请注意,这段代码只是为了澄清我的想法,它实际上不是javascript代码,尽管它们相同): 非常感谢Javascript 取消将字符串常量作为对象属性,javascript,string,constants,Javascript,String,Constants,谁能给我解释一下Crockford在谈到字符串常量时的意思吗 “当下标是合法标识符形式的字符串常量时,可以使用点表示法。” 他把常数称为对象属性,但如果它们的值可能随时发生变化,为什么要称之为常数呢 或者,他是否将这些称为常量,因为一旦定义了属性名,它就永远不会更改 如果我要根据他的话编写一个伪代码,我会这样做(请注意,这段代码只是为了澄清我的想法,它实际上不是javascript代码,尽管它们相同): 非常感谢 object.helloOK object.2失败,因为2不是有效的标识符 ob
OK李>object.hello
失败,因为2不是有效的标识符李>object.2
因空间原因失败object.hello world
你觉得怎么样object.a-b
OK李>object.hello
失败,因为2不是有效的标识符李>object.2
因空间原因失败object.hello world
你觉得怎么样object.a-b
OK李>object.hello
失败,因为2不是有效的标识符李>object.2
因空间原因失败object.hello world
你觉得怎么样object.a-b
OK李>object.hello
失败,因为2不是有效的标识符李>object.2
因空间原因失败object.hello world
你觉得怎么样object.a-b
- 以下是我的信念
var obj = {'You can have spaces here' : 'value 1', cantHaveSpacesHere: 'value 2'};
console.log(obj['You can have spaces here']);
console.log(obj.cantHaveSpacesHere);
这就是我所相信的
var obj = {'You can have spaces here' : 'value 1', cantHaveSpacesHere: 'value 2'};
console.log(obj['You can have spaces here']);
console.log(obj.cantHaveSpacesHere);
这就是我所相信的
var obj = {'You can have spaces here' : 'value 1', cantHaveSpacesHere: 'value 2'};
console.log(obj['You can have spaces here']);
console.log(obj.cantHaveSpacesHere);
这就是我所相信的
var obj = {'You can have spaces here' : 'value 1', cantHaveSpacesHere: 'value 2'};
console.log(obj['You can have spaces here']);
console.log(obj.cantHaveSpacesHere);
当下标是字符串常量时,可以使用点表示法
以合法标识符的形式。”
这意味着可以使用不变的字符串值来读取和写入相同的属性值。消息是,尽管任何字符串值都可以在括号表示法中使用,但它必须是使用点表示法编写的合法标识符
例如someObject[“propertyName”]
的意思与使用点符号的someObject.propertyName
相同。两者都有效且有效。然而,虽然someObject[“太…多…点”]
有效并使用括号表示法,但someObject.too…多…点
不是合法标识符,也不起作用
在答复评论时:
对象。“属性”
总是非法的obj.color = "red";
var prop = "color"
obj[ prop]; // value of property specified by the expression (prop) is "red"
someObject[“propertyName”]
的意思与使用点符号的someObject.propertyName
相同。两者都有效且有效。然而,虽然someObject[“太…多…点”]
有效并使用括号表示法,但someObject.too…多…点
不是合法标识符,也不起作用
在答复评论时:
对象。“属性”
总是非法的obj.color = "red";
var prop = "color"
obj[ prop]; // value of property specified by the expression (prop) is "red"
someObject[“propertyName”]
的意思与使用点符号的someObject.propertyName
相同。两者都有效且有效。然而,虽然someObject[“太…多…点”]
有效并使用括号表示法,但someObject.too…多…点
不是合法标识符,也不起作用
在答复评论时:
对象。“属性”
总是非法的