JavaScript中的对象属性名称与构造函数参数

血红蛋白

首先,对于这个问题太基础或措词不正确,我深表歉意。我正在学习JavaScript,但仍然很陌生。而且我一直在尝试找出教科书中包含的示例,并且需要一些帮助。

这是示例:

var star = new Object;

function Star(constell, type, specclass, magnitude) {
  this.constellation = constell;
  this.type = type;
  this.spectralClass = specclass;
  this.mag = magnitude;
}

star["Polaris"] = new Star("Ursa Minor", "Double", "F7", 2.0);
alert(star["Polaris"].spectralClass);

我没有到这里(似乎找不到解释)的部分是,当我选择一个随机对象来发出警报时,例如

alert(star["Polaris"].spectralClass);

我必须在函数内使用名称,spectralClass而不是specclass这是为什么?为什么不使用specclass已分配给我的东西spectralClass呢?我想,我在这里缺少大量知识,但是我似乎无法弄清楚它是什么。

谢谢!

亚历克斯·谢斯特罗夫

让我们进一步简化代码:

function Star(specclass) {
    this.spectralClass = specclass;
}

在这里,Star是一个构造函数。它带有一个参数,可以通过函数内部的名称进行引用specclass

该函数将此自变量值分配给名为的对象属性spectralClass

现在,

var polarisStar = new Star("F7");

polarisStar是由Star函数构造的对象,该函数已将的值分配"F7"给该对象的spectralClass属性。因此,您可以通过访问它polarisStar.spectralClass,例如

alert(polarisStar.spectralClass);

实际上,通常的做法是为构造函数的参数和构造对象的属性赋予相同的名称,即:

function Star(spectralClass) {
    this.spectralClass = spectralClass;
}

这使代码更具可读性。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript:“对象属性”实例的空构造函数名称

JavaScript中的构造函数参数

变量对象属性名称作为JavaScript中的参数?

使用不可变对象检测构造函数参数名称和属性名称之间的不匹配

JavaScript对象构造函数返回属性

在Python中的对象实例化期间使用构造函数参数变量名称?

数组作为对象构造函数中的参数

在构造函数参数中释放COM对象

声明具有参数问题的构造函数对象的JavaScript Object属性

使用参数解构从构造函数默认值设置javascript对象属性

对象构造函数作为Javascript中的函数

如何获取对象的构造函数的参数名称(反射)?

在Powershell中使用名称参数构造函数创建对象

无法从PyYAML调用的构造函数中的参数构造对象

将参数传递给构造函数,这是对象类的属性

如何访问JavaScript构造函数对象作为IFFI函数参数?

javascript中带有参数的构造函数

构造函数中的JavaScript访问器属性

javascript中带有构造函数的对象

使用构造函数在 Javascript 中创建对象

javascript 对象方法中的新构造函数

如何从构造函数中的函数返回对象属性?

使用mongoose.find()方法在构造函数中设置javascript对象属性

如何在javascript对象中使用构造函数以仅使用`this`中的属性?

C ++,类构造函数中参数名称后的&符

在函数参数中声明对象属性类型

函数参数中的动态Typescript对象属性

在 Typescript 中投射函数参数对象属性

通过传递构造函数参数在函数参数中自动构造对象