如何从javascript类中访问原型属性?

亚尔达

我知道javascript,请原谅我的基本问题。如何在类中使用属​​性,如下面的示例代码所示?

function MyClass() {
  // nothing special
}

MyClass.prototype.myProperty = {
  key1: 'some value 1',
  key2: 'some value 2',
};

My Class.prototype.myFunction = function myFunction() {
  // I need to retrieve the first value of myProperty
  const x = myProperty[Object.keys(myProperty)[0]] + 10; // won't work
  return x;
};

module.exports = MyClass;

使用this.myProperty抛出错误Cannot convert undefined or null to object

TJ人群

用途this.

MyClass.prototype.myFunction = function myFunction() {
  const x = this.myProperty[Object.keys(this.myProperty)[0]] + 10;
  // -------^^^^^-----------------------^^^^^
  return x;
};

那将从对象获得属性。如果对象没有自己的属性副本,它将从对象的原型中获取它。

或者,如果您想每次从原型中获取它,请明确说明:

MyClass.prototype.myFunction = function myFunction() {
  const p = MyClass.prototype.myProperty;
  const x = p[Object.keys(p)[0]] + 10;
  return x;
};

旁注:const从ES2015开始,这是新事物。如果您使用的是ES2015(看起来好像您使用的是NodeJS,这意味着您可以使用v6或更高版本),则可以使用class符号更简单地编写类

class MyClass {
  constructor() {
    // nothing special
  }
  myFunction() {
    const x = this.myProperty[Object.keys(this.myProperty)[0]] + 10;
    return x;
  }
}
MyClass.prototype.myProperty = {
  key1: 'some value 1',
  key2: 'some value 2',
};

module.exports = MyClass;

请注意,如果您想myProperty成为原型,则仍然需要以“笨拙”的方式分配它。但是您可能想在构造函数中创建该属性。


旁注2:除非您myProperty稍后进行更改否则我强烈建议您使用this.myProperty.key1this.myProperty.key2不使用this.myProperty[Object.keys(this.myProperty)[0]],这很难读,混乱(不确定的行为,Object.keys未指定返回键的顺序,甚至在ES2015中也不指定)以及额外的工作。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在javascript中从原型访问对象属性?

来自分类Dev

如何将原型属性从javascript中的超类委托给子类

来自分类Dev

Javascript中的对象原型属性

来自分类Dev

Javascript中的对象原型属性

来自分类Dev

javascript中对象的原型属性

来自分类Dev

如何访问Coffeescript扩展类中的属性?

来自分类Dev

如何访问 Json 对象中的属性类?

来自分类Dev

从原型中定义的函数访问类属性

来自分类Dev

在JavaScript类中调用父方法,但stll可以访问对象实例内部的原型方法吗?

来自分类Dev

JS原型类并非所有属性都可访问

来自分类Dev

如何从C ++中的基类访问派生类的属性?

来自分类Dev

如何从 Javascript 中的 foreach 访问类变量

来自分类Dev

Javascript类中的AJAX调用(原型功能)

来自分类Dev

如何获得Javascript对象原型的属性?

来自分类Dev

如何在javascript中访问对象属性?

来自分类Dev

在Javascript中,“ for ... in”不会迭代原型的属性吗?

来自分类Dev

JavaScript中的原型和属性继承

来自分类Dev

在Javascript中,“ for ... in”不会迭代原型的属性吗?

来自分类Dev

如何从 Python 中的类中访问类属性

来自分类Dev

原型获取器访问的Javascript私有属性

来自分类Dev

原型继承-访问原型属性内的道具

来自分类Dev

在构造函数原型上定义的方法如何访问Javascript构造函数中的实例成员?

来自分类Dev

访问Javascript对象原型

来自分类Dev

访问javascript对象的原型

来自分类Dev

如何在Python中访问超类的元属性?

来自分类Dev

如何在其父类的数组中访问子类的属性

来自分类Dev

如何从tableView的行中的类访问所有属性值

来自分类Dev

如何从 Java 类中的托管 bean 访问属性值?

来自分类Dev

如何从 Java 中的属性方法访问包含类

Related 相关文章

  1. 1

    如何在javascript中从原型访问对象属性?

  2. 2

    如何将原型属性从javascript中的超类委托给子类

  3. 3

    Javascript中的对象原型属性

  4. 4

    Javascript中的对象原型属性

  5. 5

    javascript中对象的原型属性

  6. 6

    如何访问Coffeescript扩展类中的属性?

  7. 7

    如何访问 Json 对象中的属性类?

  8. 8

    从原型中定义的函数访问类属性

  9. 9

    在JavaScript类中调用父方法,但stll可以访问对象实例内部的原型方法吗?

  10. 10

    JS原型类并非所有属性都可访问

  11. 11

    如何从C ++中的基类访问派生类的属性?

  12. 12

    如何从 Javascript 中的 foreach 访问类变量

  13. 13

    Javascript类中的AJAX调用(原型功能)

  14. 14

    如何获得Javascript对象原型的属性?

  15. 15

    如何在javascript中访问对象属性?

  16. 16

    在Javascript中,“ for ... in”不会迭代原型的属性吗?

  17. 17

    JavaScript中的原型和属性继承

  18. 18

    在Javascript中,“ for ... in”不会迭代原型的属性吗?

  19. 19

    如何从 Python 中的类中访问类属性

  20. 20

    原型获取器访问的Javascript私有属性

  21. 21

    原型继承-访问原型属性内的道具

  22. 22

    在构造函数原型上定义的方法如何访问Javascript构造函数中的实例成员?

  23. 23

    访问Javascript对象原型

  24. 24

    访问javascript对象的原型

  25. 25

    如何在Python中访问超类的元属性?

  26. 26

    如何在其父类的数组中访问子类的属性

  27. 27

    如何从tableView的行中的类访问所有属性值

  28. 28

    如何从 Java 类中的托管 bean 访问属性值?

  29. 29

    如何从 Java 中的属性方法访问包含类

热门标签

归档