我有一组管理数据库上的 CRUD 操作的函数。
我正在尝试拥有一个包含添加、更新、删除等功能的顶级功能,以保持其干净和有条理。
我经常看到 Javascript SDK 看起来像users.add(param, param)
我预想的那样:
users = function(){
add = function(param,param) {
// do function
}
}
这样做的正确方法是什么?
我有一组管理数据库上的 CRUD 操作的函数。
我正在尝试拥有一个包含添加、更新、删除等功能的顶级功能,以保持其干净和有条理。
我经常看到 Javascript SDK 看起来像users.add(param, param)
我预想的那样:
users = function(){
add = function(param,param) {
// do function
}
}
这样做的正确方法是什么?
一种简单的方法是将其构造为对象:
var users = {
add: function(param, param) {
//do function
},
edit: function(param, param) {
//do another function
}
//etc
};
users
通常是一个对象字面量,像这样:
users = {
add:function(...) {...}
}
或者,它可能是一个实例化的对象(在这种特殊情况下不太可能):
function Users() {};
Users.prototype.add = function(...) {...};
users = new Users();
users.add(...);
你可以这样做:
var Users = {
add: function(a,b) {...},
remove: function(a) {...},
};
然后调用:
Users.add(a, b);
或者:
var Users = function(options) { this.init(options); };
// Add a static method
Users.add = function(a,b) {...};
// Also add a prototype method
Users.prototype.remove = function(a) {...};
然后这样做:
var user = User.add(a, b);
或者
var user = new User(user_id);
user.remove();
var users = {
add: function(params) {
// do stuff
},
// more functions
};
也许这可能会有所帮助:
var User = function(name){
this.name = name;
this.address = "";
this.setAddress = function(address){
this.address = address;
}
this.toString = function(){
alert("Name: "+this.name+" | Address: "+this.address);
}
}
var a = new User("John");
a.setAddress("street abc");
a.toString();
并管理用户列表:
var Users = function(){
this.users = new Array();
this.add = function(name, address){
var usr = new User(name);
usr.setAddress(address);
this.users.push(usr);
}
this.listUsers = function(){
for(var x = 0; x < this.users.length; x++){
this.users[x].toString();
}
}
}
var list = new Users();
list.add("Mickey", "disney Street");
list.add("Tom", "street");
list.listUsers();
工作示例:http: //jsfiddle.net/N9b5c/