以下の作業関数は、同じ親 (プロトタイプチェーン) と同じ独自のプロパティをtwin(source)
持つ新しいオブジェクトを生成します。(例: and ) 同じ効果をもたらすネイティブ関数はありますか?source
twin(isFinite)
[object Object]
instanceof Function
/**
* @param {Object|Function} source
* @param {(Object|Function|null)=} parent defaults to source's parents
* @return {Object}
*/
function twin(source, parent) {
var twin, owned, i = arguments.length;
source = i ? source : this; // use self if called w/o args
parent = 2 == i ? parent : Object.getPrototypeOf(source);
twin = Object.create(parent);
owned = Object.getOwnPropertyNames(source);
for (i = owned.length; i--;) {
twin[owned[i]] = source[owned[i]];
}
return twin;
}
更新:.twin
メソッドは Blood で利用可能です。