Creator 重写节点属性的 getter/setter 函数

Object.getOwnPropertyDescriptor 获取属性描述符
Object.getPrototypeOf 获取对象的原型
Object.defineProperty 定义对象上的新属性或者修改现有属性

文档
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object

    let old_set = Object.getOwnPropertyDescriptor(
        Object.getPrototypeOf(this.node), 'x'
    ).set.bind(this.node);

    let old_get = Object.getOwnPropertyDescriptor(
        Object.getPrototypeOf(this.node), 'x'
    ).get.bind(this.node);

    Object.defineProperty (this.node, "x", {
        get () {
            console.log("========get=========");
            return old_get();
        },
        set (value) {
            console.log("========set=========" + value);
            old_set(value);
        },
    })
2赞

现在啥表现?你这段代码在哪执行的

就是做一个小分享,在onload 的时候添加一下,然后节点属性改变的时候,都会进到自定义的 set 方法里,目前我只是为了方便断点调试一些奇怪的问题,在cc.Node 里打断点不太方便

明白了,以为你遇到问题了