我发现在原始对象(如字符串,数字,布尔值等)上执行“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
答案 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";
};