如何在Javascript中同时使用静态和实例方法
我有这种PHP设计(类似于雄辩的ORM): 我是这样使用它的:如何在Javascript中同时使用静态和实例方法,javascript,php,oop,Javascript,Php,Oop,我有这种PHP设计(类似于雄辩的ORM): 我是这样使用它的: $user = User::getUser(1); 现在,我想用Javascript实现这一点。我走了这么远: var User = function(id, name) { this.id = id; this.name = name; } User.prototype.getName = function() { return this.name; } 如何添加静态函数 我如何调用它以便它返回一个实
$user = User::getUser(1);
现在,我想用Javascript实现这一点。我走了这么远:
var User = function(id, name) {
this.id = id;
this.name = name;
}
User.prototype.getName = function() {
return this.name;
}
如何添加静态函数
我如何调用它以便它返回一个实例化的对象
这个设计模式有名字吗
更新: 我的问题的简短回答是:
User.getUser = function(id) {
//get data from database
return new User(id, 'Adam');
}
如何添加静态函数
对于ES5,您将使用:
User.staticMethod = function (user, name) {
user.name = name;
}
我如何调用它以便它返回一个实例化的对象
这个设计模式有名字吗
这是一个很好的例子
如何使用ES6使其更加简洁
User.staticMethod = function (user, name) {
user.name = name;
}
User.staticMethod = function (id, name) {
return new User(id, name);
}
class User {
static createUser(id, name) {
return new User(id, name);
}
constructor(id, name) {
this.id = id;
this.name = name;
}
get name() {
return this.name;
}
}