繁体   English   中英

如何在javascript中关联两个对象?

[英]How can I relate two objects in javascript?

我创建了两个对象: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); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM