a == 1 && a == 2 && a == 3

2023-05-29 09:22:18 浏览数 (2)

一、采用valueOf或toString

代码语言:javascript复制
const a = {
    n: 1,
    // valueOf: function () {
    //     return this.n  ;
    // },
    toString: function () {
        return this.n  ;
    }
}
代码语言:javascript复制
let a = [1, 2, 3, ];
a.toString = a.shift; // 从开头删除一个

二、采用definePropety的get方法

代码语言:javascript复制
let n = 1;
Object.defineProperty(window, 'a', {
    get() {
        return n  ;
    }
})

三、采用Proxy代理

代码语言:javascript复制
const a = new Proxy({}, {
    n: 1,
    get: function () {
        return () => this.n  ;
    }
})

0 人点赞