gpt4 book ai didi

javascript - 如何关联 javascript 中的两个对象?

转载 作者:行者123 更新时间:2023-11-30 16:31:14 25 4
gpt4 key购买 nike

我创建了两个对象:User 和 Blog,我需要将它们关联起来。我的想法是为每个人创建一个 ID,然后进行关联。 ID是在创建实例时通过array.length创建的。

associateUserWithBlog 函数存储各自用户的博客。在用户实例中,我定义了一个数组来存储用户创建的所有博客。我的问题是是否有另一种方法可以进行这种关联。稍后我需要打印所有博客及其所有者(用户),有时我很难打印。

function User(name, level, title, id, entry, comment) {
this.name = name;
this.level = level;
this.title = title;
this.id = id;
this.entry = entry;
this.comment = comment;
}

function Blog(blogID, title, userID, blogText) {
this.blogID = blogID;
this.title = title;
this.userID = userID;
this.blogText = blogText;
this.comment = comment;
}

users = new Array();
blogs = new Array();

function associateUserWithBlog(userID, entryID) {
users[userID].entry = entryID;
}

// user with id = 0
userID = users.length
var user = new User(userID, "Bob", "Student", "Mr", new Array())

// blog with id = 0 and user associate with id = 0
blogID = blogs.length
var blog = new Blog(entries.length, "Blog 1", 0, "Welcome Blog 1");

associateUserWithEntry(userID, blogID);

最佳答案

以下创建一个用户,该用户拥有他拥有的任意数量的博客作为关联。

您可以向用户对象添加更具体的行为并将其转换为模块模式。我已经添加了一个片段,它给出了这样一个对象的简要概述。

function createUser(userOpts) {
//private members
var name = userOpts.name;
var level = userOpts.level;
var title = userOpts.title;
var id = userOpts.id;
var entry = userOpts.entry;
var comment = userOpts.comment;
var blogs = userOpts.blogs || [];
return {

//All methods to manipulate private data

createBlog:function() {...}
getBlogs: function() { return blogs.slice(); }
//...other methods
};
}


var user = createUser(opts);

关于javascript - 如何关联 javascript 中的两个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293314/

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