如果对象是构造函数,如何调用对象上的方法?

时间:2018-09-18 05:06:54

标签: javascript

Object对象定义为构造函数。但是,我可以在其上调用诸如Object.create(),Object.freeze(),Object.assign()等的方法。我也可以通过键入“ var foo = new Object()”来创建一个新对象。 “。

因此,如果Object是构造函数,那么我如何直接在其上调用方法?

那总是让我感到困惑。

1 个答案:

答案 0 :(得分:4)

构造函数本身也可以具有属性。在现代语法中,这些称为静态方法。例如:

class Foo {
  static fooRelatedFn() {
    console.log('foo related function running');
  }
  constructor() {
    this.bar = 'bar';
  }
}

Foo.fooRelatedFn();
const foo = new Foo();
console.log(foo.bar);

使用常规语法,只需分配给构造函数的一个属性即可完成同一件事:

function Foo() {
  this.bar = 'bar';
}
Foo.fooRelatedFn = function() {
  console.log('foo related function running');
}

Foo.fooRelatedFn();
const foo = new Foo();
console.log(foo.bar);