对象初始化-为什么用“:”而不是“ =”初始化对象属性

darkcam17

经历了Angular教程并意识到::用于类型声明,而=用于值赋值。看下面的代码

export class HeroesComponent implements OnInit {
  hero: Hero = {
    id: 1,
    name: 'Windstorm'
  }

我不明白为什么id和name使用:而不是=,因为类型已经声明,并且我们为hero的属性分配了一个值。

export class HeroesComponent implements OnInit {
  hero: Hero = {
    id = 1,
    name = 'Windstorm'
  }

上面是我希望可以使用但不正确的代码。

克莱因

可以使用JavaScript中的不同方法来初始化对象。您可能更熟悉的一种方法是,首先创建对象的实例,然后通过构造函数,getter和setter分配属性,或者直接更改对象属性

// Creates a hero object with no properties
let hero = new Hero();

// Creates a hero object with defined properties
let hero = new Hero(1, 'Windstorm');

// Creates a hero object then sets the object property
let hero = new Hero();
hero.id = 1;
hero.name = 'Windstorm';

尽管这些在JavaScript中创建对象的方法是有效的,但您通常会看到开发人员使用对象文字,这是名称/值对的列表,以逗号分隔。您可能已经注意到,但是JSON采用与对象文字语言相同的语法,但有一个区别,即语言无关(对象文字语言是JavaScript独有的)。稍微扩展一下我的解释,您可以将任何数据类型分配给对象文字属性值:它可以是数组,字符串,整数,另一个对象文字等,只需按键盘上的“:”即可。 。

希望我能提供帮助,祝您好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章