为什么我不能从Object实例访问Object方法?

时间:2018-07-20 02:27:35

标签: javascript

Object构造函数有很多方法,例如Object.assign()和Object.create(),但是为什么我不能从Object实例访问这些方法?

var test  = new Object();
//this will return error
test.create();

2 个答案:

答案 0 :(得分:0)

这是因为createassign和许多其他方法都是静态方法。静态方法属于该类,因此您不能从该类的实例调用它们。 Here you can find more info about static methods in js

class Tripple {
  static tripple(n) {
    n = n | 1;
    return n * 3;
  }
}

class BiggerTripple extends Tripple {
  static tripple(n) {
    return super.tripple(n) * super.tripple(n);
  }
}

console.log(Tripple.tripple());
console.log(Tripple.tripple(6));
console.log(BiggerTripple.tripple(3));
var tp = new Tripple();
console.log(tp.tripple()); //Logs 'tp.tripple is not a function'

答案 1 :(得分:0)

您已经用新变量创建了一个对象。您可以尝试使用create关键字来创建新对象

var testObj = Object.create(null);

typeof(testObj) // Object
console.log(testObj) // Object with prototype object as null

// Set property to object
testObj.name = "Stackoverflow";

console.log(testObj)