我正在将经典OOP项目转换为JS。一切顺利,我只需要知道我使用的其中一种方法是否采用速记/传统方式来实现与之相同的方法。
在我的设计中,我需要使用特定原型创建一个空对象。我使用了一个空虚拟函数作为constructor
因为我需要一个空对象。我无法使用new Object()
,因为我需要在创建之前附加原型。
这是我的代码:
var baseObj = {name: '', id: 0}
function emptyObj () {
//this is really a dummy
}
emptyObj.prototype = Object.create(baseObj);
myUser = new emptyObj();
请注意我必须遵循这种模式,我的项目非常适合它。我只想知道是否有一个简写/传统方法来创建一个带有原型的空对象。
请坚持使用ES5。
答案 0 :(得分:1)
我只想知道是否有一个简写/传统方法来创建一个带有原型的空对象
是的,有一个可以做到这一点。而且你已经使用过了。它被称为Object.create
。
您的代码完全等同于
var baseObj = {name: '', id: 0};
myUser = Object.create(Object.create(baseObj));
我不确定你是否真的打算进行这种两级继承,或者单个调用是否足够。