この関数を使用して新しいオブジェクトのプロトタイプを設定できることは知っていますが ( mozzzilla docu を参照)、このようにオブジェクト リテラル内で使用する場合、独自のプロパティも作成しますか?
return Object.create(this);
インスタンスメソッドのみをコピーするクラスリテラルからこのメソッドも知っています
var subclass = function() { };
subclass.prototype = parent.prototype;
klass.prototype = new subclass;
主に object.create メソッドに興味があります
編集
var Klass = {
init: function(){},
prototype: {
init: function(){}
},
create: function(){
var object = Object.create(this);
console.log('object with class create');
console.log(object);
console.log("object's parent is this");
console.log(this);
object.parent = this;
object.init.apply(object, arguments);
console.log('returned object from create');
console.log(object);
return object;
},
inst: function(){
var instance = Object.create(this.prototype);
console.log('de instance na object create');
console.log(instance);
instance.parent = this;
instance.init.apply(instance, arguments);
console.log('arguments in inst');
console.log(arguments);
return instance;
},
proxy: function(func){
var thisObject = this;
return(function(){
return func.apply(thisObject, arguments);
});
},
include: function(obj){
var included = obj.included || obj.setup;
for(var i in obj)
this.fn[i] = obj[i];
if (included) included(this);
},
extend: function(obj){
var extended = obj.extended || obj.setup;
for(var i in obj)
this[i] = obj[i];
if (extended) extended(this);
}
};
Klass.fn = Klass.prototype;
Klass.fn.proxy = Klass.proxy;
ありがとう、リチャード