|
吾爱游客
发表于 2020-11-4 15:22
申 请 I D:风中瞎跑
个人邮箱:13043946032@163.com
关于js中的隐式调用问题 叫它隐式调用应该相对比较确切吧(反正我这么叫它),因为它毕竟是在js内部执行时调用的,对于外部隐藏,不可见。作用虽然不是很大但是了解一下也是比较必要的,在你处理BUG时能够提供一些方便。1.toString && valueOf[JavaScript] 纯文本查看 复制代码 var obj = {
name: "123",
valueOf: function () {
console.log("valueOf");
return {};//undefined,null 自行测试
},
toString: function () {
console.log("toString");
}
}
console.log(obj == "1");
// valueOf
// toString
// false 在相等运算符的操作中,对象会先调用valueOf 如果返回的值是一个对象, 就会调用 toSting, null与undefined除外,然后用返回的值进行比较。
[JavaScript] 纯文本查看 复制代码 var obj = {
name: "123",
valueOf: function () {
console.log("valueOf");
return 1;
},
toString: function () {
console.log("toString");
}
}
console.log(obj == "1");
// valueOf
// true
因为首先调用了 valueOf方法并且返回值不是一个对象所以没有有toString方法,直接返回1故为true。
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|