为什么 JavaScript 函数要检查 `this` 是否是同一个函数的 `instanceof`?

问题描述 投票:0回答:2

我认为这是在查看这个对象是否已经被实例化并且存在于范围内? 为什么需要用三个等号来确定?

function viewmodel(parent) {
  if (false === (this instanceof viewmodel)) {
    return new viewmodel(parent);
  }
};
javascript this
2个回答
6
投票

你不需要在那里进行严格的平等比较。

instanceof
产生
true
false
,所以这完全足够了:

if (!(this instanceof viewmodel))

3
投票

三重等于可防止隐式数据类型转换。

请参阅此问题了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.