Number作为对象和Number作为构造函数之间的区别

时间:2017-05-17 22:37:16

标签: javascript constructor wrapper theory

当我们尝试在屏幕上Number打印document.querySelector('#test').textContent = Number时,我们会得到结果:function Number() { [native code] }。所以这是构造函数方法的定义。但是,对于具有几个方法和字段(属性)的对象编号包装器Number,如何使用相同的名称,例如Number.MAX_VALUE? ..,那两者有什么区别?

2 个答案:

答案 0 :(得分:1)

只有一个Number个对象。要理解为什么,你必须记住JavaScript是如何工作的......看看这个基本的例子:



function Test(foo, bar) {
  this.foo = foo;
  this.bar = bar;
  
  return "Hello!";
}

Test.bye = function () {
  return "Bye!";
};

console.log(new Test('Foo', 'Bar'));
console.log(Test('Foo', 'Bar'));
console.log(Test.bye());




答案 1 :(得分:1)

首先,你必须了解如何在javascript中使用类和对象。

虽然javascript不是面向对象的,但它模拟了一些OOP原则。

您可以模拟如下所示的类:

//class/constructor definition
function MyCustomType() {}

//static property
MyCustomType.SOME_CONSTANT_VALUE = "Hello, ";

//property of class
MyCustomType.prototype.Name = "World";

//methods
MyCustomType.prototype.getName = function () {
    return MyCustomType.SOME_CONSTANT_VALUE + this.Name;
}

重要的是要理解一些元素,比如原型以及为什么你的使用更好然后使用

  

在构造函数上。

因此,为了给您一个更具体的响应,本机Number就像一个具有一些静态属性的类。