【发布时间】:2017-06-14 13:40:46
【问题描述】:
为什么我不能在这里使用破折号?
export class FizzService {
getFizzes() : object[] {
return[
{
iconClass: 'glyphicon glyphicon-search',
},
所以在上面我不能使用
icon-class: 'glyphicon glyphicon-search',
我必须这样做:
iconClass: 'glyphicon glyphicon-search',
否则我会看到错误:
【问题讨论】:
-
使用引号
'icon-class': 'glyphicon glyphicon-search' -
@yurzui 谢谢,这很有趣。你能解释一下为什么吗?或者只是发布一个答案,我很乐意接受它
-
这是一个纯 JavaScript 问题。
-是 JS 中的运算符,因此不能在标识符中使用。 -
带有特殊字符(如
@或-)的Javascript 对象属性需要是字符串。要访问这些属性,您可以编写object['icon-class'],因为object.icon-class不起作用。 -
在 HTML 和 CSS id/class 名称中使用连字符是一般惯例(请参阅 Google 样式指南)。还可以防止 JavaScript 对象和全局/窗口属性中的 HTML 标记 id 之间的冲突。所有 HTML 元素 ID 都添加到 window 对象中,并且由于 JavaScript 变量不能有连字符(字符串访问器除外),它有助于解决这种冲突
标签: javascript angular angular2-services