Mih*_*anu 5 javascript php oop
我在 PHP 中有这样的设计(类似于 Eloquent ORM):
class User {
private $id;
private $name;
public __constructor($id, $name) {
$this->id = $id;
$this->name = $name;
}
public function getName() {
return $this->name;
}
static function getUser($id) {
//get data from database
return new User($id, 'Adam');
}
}
Run Code Online (Sandbox Code Playgroud)
我这样使用它:
$user = User::getUser(1);
Run Code Online (Sandbox Code Playgroud)
现在,我想用 Javascript 来做这件事。我到目前为止:
var User = function(id, name) {
this.id = id;
this.name = name;
}
User.prototype.getName = function() {
return this.name;
}
Run Code Online (Sandbox Code Playgroud)
如何添加静态函数?
我如何调用它才能返回实例化对象?
这个设计模式有名字吗?
更新:
我的问题的简短回答是:
User.getUser = function(id) {
//get data from database
return new User(id, 'Adam');
}
Run Code Online (Sandbox Code Playgroud)
如何添加静态函数?
使用 ES5,您将使用:
User.staticMethod = function (user, name) {
user.name = name;
}
Run Code Online (Sandbox Code Playgroud)
我如何调用它才能返回实例化对象?
User.staticMethod = function (id, name) {
return new User(id, name);
}
Run Code Online (Sandbox Code Playgroud)
这个设计模式有名字吗?
这是一个工厂方法。
我如何使用 ES6 使其更加简洁?
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |