网站怎么改版自适应,镇江网站制作价格,个人做网站如何赚钱吗,wordpress支持拨打电话1 双等号的隐式调用和数据劫持
求下面条件,在a为什么样时,等号成立
if(a 1 a 2 a 3){console.log(等号成立)
}1.1 双等号的隐式转换
首先得了解双等号的隐式转换规则
等式备注对象 字符串隐式调用 toString方法将对象转换成字符串null undeifne…1 双等号的隐式调用和数据劫持
求下面条件,在a为什么样时,等号成立
if(a 1 a 2 a 3){console.log(等号成立)
}1.1 双等号的隐式转换
首先得了解双等号的隐式转换规则
等式备注对象 字符串隐式调用 toString方法将对象转换成字符串null undeifned相等NaN NaN不相等其他情况都转换成数字进行比较.
思路: 根据双等号的隐式转换规则,每次调用调用toString(),可以重写a属性下面的toString方法初始时i的值设置为0,每次返回i
// 双等号
var a {i: 0,toString(){return this.i}
}
if(a 1 a 2 a 3){console.log(等号成立)
}1.2 数据劫持 还有一种方法是使用数据劫持,没当读取a元素时返回一个i 数据劫持回顾:
// ES5: Object.defineProperty
Object.defineProperty(obj, name, {get(){console.log(获取)},set(){console.log(设置)}
})
使用数据劫持完成小栗子
var i 0;
Object.defineProperty(window, a,{get(){return i;}
})