valueOf的奇异之举

如何实现 a == 1 && a == 2 为 true

var a = {i: 0};

a.valueOf = function() {

this.i = this.i + 1;

return this.i;

};

a==1 && a==2; // true

关于 a === 1 && a === 2

var b = 1;

Object.defineProperty(window, 'a', {

get: function() {

return this.b += 1;

}

});

a === 2 && a === 3; // true

实现 add 的链式调用

function add(value) {

var result = function (data) {

return add(data + value);

};

result.valueOf = function() {

return value;

};

return result;

};

add(1)(2)(3)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容