私はObject.create()
2番目の引数をとるように拡張しています。
if (typeof Object.create !== 'function') {
Object.create = function (o,arg) {
function F() {}
F.prototype = o;
return new F(arg);
};
}
//could be multiple of these objects that hold data
var a = {
b : 2
};
var c = function(data){
return{
d : Object.create(data)
};
};
//create new instance of c object and pass some data
var newObj = function(arg){
return(Object.create(c(arg)))
}
var e = newObj(a);
e.d.b = 5;
var f = newObj(a);
console.log(e.d.b);
console.log(f.d.b);
このように使用する際に落とし穴があるかどうか疑問に思っていObject.create()
ますか? これを使用する場合は、関数の arg 引数に対して追加のチェックを行いますObject.create()
が、主なポイントは、これが問題を引き起こすか、やり過ぎかなどを確認することです.