gpt4 book ai didi

Javascript - OOP 引用循环

转载 作者:行者123 更新时间:2023-11-30 09:56:35 26 4
gpt4 key购买 nike

我试图创建具有另一个对象“项目”的对象“房间”。我希望每个“项目”都引用“房间”。

我只想知道某个“元素”的“房间”是什么……

问题来了:

// Creating Room Class
function Room(name){
this.name = name;
this.items = [];
};

// function that creates item in a Room
Room.prototype.addItem = function(name){
var newItem = new Item(name, this);
this.items.push(newItem);
}

// Creating Items Class
function Item( name, room ){
this.name = name;
this.parentRoom = room; // HERE IS THE PROBLEM!!
// I need reference to my Room Class
};


// Lets create a Room
var myRoom = new Room('MyRoom');

// And lets add some items
myRoom.addItem("chair");
myRoom.addItem("bed");
myRoom.addItem("computer");

// Result -> you can see endless loop of Rooms in th Items
console.log( myRoom );

在Inspect元素中可以看到死循环。

Screenshot from Inspect element

或者创建这个东西的正确方法是什么?我需要对“Item”类使用“extends”方法到“Room”吗?

最佳答案

当您检查 javascript 对象时,未结束的对象引用没有任何问题。它们实质上在对象引用中形成了一个循环图。

但是,这意味着您可以获得循环图的缺点。

当遍历/迭代图形时,您需要通过跟踪您已经访问过的对象并且不会多次访问它们来小心无限循环。 (即通过跟踪 visited map )

关于Javascript - OOP 引用循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33651615/

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