了解instanceof运算符

时间:2015-11-30 15:29:07

标签: javascript

我发现在原始对象(如字符串,数字,布尔值等)上执行“instanceof”非常奇怪。请向任何人解释此代码:

var str = 'A string';
var num = 1;
var bool = true;

str  instanceof str.constructor; // returns false
num  instanceof num.constructor; // returns false
bool instanceof bool.constructor; // returns false

2 个答案:

答案 0 :(得分:1)

instanceof运算符仅测试对象。您尝试测试基元,因此它返回false。 More here

答案 1 :(得分:1)

截至MDN给出的定义:

  

instanceof运算符测试了constructor.prototype的存在   对象的原型链。

如果要调用构造函数,请使用new运算符。试试这样:



document.getElementById('termsChkbx').onclick = function() {
    document.getElementById('termsChkbx').parentElement.style.color = this.checked ? "black" : "red";
};