gpt4 book ai didi

javascript - 如何断言传递给类构造函数的函数是通过引用传递的,并且在使用组合时不会重复?

转载 作者:行者123 更新时间:2023-11-28 17:03:33 24 4
gpt4 key购买 nike

在下面的代码中,我可以轻松断言 zombieZombie 的实例。

当创建 zombie 时,函数 bitmapRenderer 会被发送给它,并成为“Zombie”内的函数 render()

我假设由于 bitmapRenderer 是一个函数,它是一个对象,因此它是通过引用传递的。我可以根据需要创建任意数量的僵尸,而不必再创建任何 bitmapRenderer 函数,不会浪费任何内存,但如何通过断言来证明这一点?

function bitmapRenderer(drawable) {
console.log('I am bitmapRenderer function', drawable);
}

class Zombie {
constructor(renderer) {
this.renderer = renderer;
this.x = 100;
this.y = 100;
this.name = 'zombie';
}
render() {
this.renderer(this);
}
}

const zombie = new Zombie(bitmapRenderer);
console.assert(zombie instanceof Zombie);

最佳答案

只需使用console.log(zombie.renderer === bitmapRenderer);

这证明它们是相同的,因为对象即使具有相同的属性,也总是被视为不相等,除非它们是相同的引用。

var obj1 = { "a": "A" };
var obj2 = { "a": "A" };
console.log(obj1 === obj2); // false

var obj3 = obj2;
console.log(obj2 === obj3); // true

关于javascript - 如何断言传递给类构造函数的函数是通过引用传递的,并且在使用组合时不会重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56603322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com