Экземпляр текущего класса в nodejs - PullRequest
0 голосов
/ 01 октября 2018

Я хочу проверить, является ли переменная экземпляром текущего класса.Поэтому я проверяю в методе класса.И я надеялся, что есть более абстрактный способ, чем указание имени класса.В PHP это возможно с ключевым словом self.

В PHP это делается так:

if ($obj instanceof self) {

}

Что эквивалентно в nodejs?

1 Ответ

0 голосов
/ 01 октября 2018

Учитывая ваш комментарий (выделение мое):

Я хочу проверить, является ли переменная экземпляром текущего класса .Поэтому я проверяю в методе класса .И я надеялся, что есть более абстрактный способ, чем указание имени класса.В PHP это возможно с ключевым словом self .

Я бы сказал, что self в этом случае будет отображаться как this.constructor.Учтите следующее:

class Foo {}
class Bar {}
class Fizz {
  // Member function that checks if other 
  // is an instance of the Fizz class without 
  // referring to the actual classname "Fizz"
  some(other) {
    return other instanceof this.constructor;
  }
}

const a = new Foo();
const b = new Foo();
const c = new Bar();
const d = new Fizz();
const e = new Fizz();

console.log(a instanceof b.constructor); // true
console.log(a instanceof c.constructor); // false
console.log(d.some(a)); // false
console.log(d.some(e)); // true
...