Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个新的变量类型,该类型扩展一个对象,该对象在Javascript中将字符串转换为浮点值_Javascript_Angularjs - Fatal编程技术网

创建一个新的变量类型,该类型扩展一个对象,该对象在Javascript中将字符串转换为浮点值

创建一个新的变量类型,该类型扩展一个对象,该对象在Javascript中将字符串转换为浮点值,javascript,angularjs,Javascript,Angularjs,在我的应用程序中,我编写了很多公式,这使得调试这些公式变得非常棘手,因为我要从混合字符串和数字格式解析数据(因此我必须单独解析每个变量) 大概是这样的: function num(n){return parseFloat(n)| | 0;} var结果=(num(宽度)*num(高度))+num(体积) 我在想,如果我能做这样的事情,读起来会更好: (width.n()*height.n())+volumn.n() 因此,我试图学习更多关于对象和类的知识,并创建一种新的对象类型,它允许使用n()

在我的应用程序中,我编写了很多公式,这使得调试这些公式变得非常棘手,因为我要从混合字符串和数字格式解析数据(因此我必须单独解析每个变量)

大概是这样的:

function num(n){return parseFloat(n)| | 0;}

var结果=(num(宽度)*num(高度))+num(体积)

我在想,如果我能做这样的事情,读起来会更好:

(width.n()*height.n())+volumn.n()

因此,我试图学习更多关于对象和类的知识,并创建一种新的对象类型,它允许使用
n()
方法

这就是我所尝试的:

class NumObject extends Object {
  constructor() {
    this.n = function() {
      return num(this);
    }
  }
}
但我在控制台中收到以下错误消息:

错误:|此|在NumObject类构造函数中未初始化使用


我不熟悉使用这样的对象和类,因此我不确定使用这种对象和类的正确方法或最佳方法。

如果扩展另一个类,必须首先在构造函数中调用
super()

class NumObject extends Object {
  constructor() {
    super();
    this.n = function() {
      return num(this);
    }
  }
}
无论哪种方式,都不需要扩展对象,也不需要将方法放入构造函数中。只要做:

class NumObject {
  n() {
   // your code here
  }
}

我认为
原型设计
是您需要的

Object.defineProperty( NumObject.prototype, 'n', {
  value: function(){
    // your logic
  },
  enumerable: true,
  configurable: true,
  writable: true
});
还没有测试过,但这应该会指引你正确的方向

如果确实要使用继承,请将代码更改为:

class NumObject extends Object {
  n () {
    //...
  }
}

请注意,整个
constructor(){super()}
都是可选的。

您不需要扩展才能继承扩展原型的所有属性吗?是的,但我认为扩展标准对象没有什么意义。通常你想从另一个类继承。哦,好的,这个类的关键字就是inherit吗?