可以'这'在原型函数中未定义

Can 'this' be undefined from within a prototype function?

本文关键字:未定义 函数 可以 原型      更新时间:2023-09-26

这个原型函数是否可能返回false,或者这是一个毫无意义的检查,总是返回true?

if (!Date.prototype.hasOwnProperty("foo")) {
    Date.prototype.foo = function () {
        var date = this;
        if (!date) {
            return false;
        }
        return true;
    }
}

如果启用了严格模式,JavaScript中的this关键字仅为undefined。否则,它将默认引用window对象,,除非以下任何一项为真:

  • 使用new运算符调用函数
  • 使用call()apply()将不同的对象绑定到this