clone() | Underscore JS 日本語リファレンス

引数が「Object」だった場合、コピーして返す。配列は配列、ObjectはObject、argumentsはargumentsとして返す。

■使用例

var obj = {
	music :  "弦楽四重奏によるドラゴンクエスト",
	author : "すぎやまこういち"
}
// re = { "music":"弦楽四重奏によるドラゴンクエスト","author":"すぎやまこういち" };
var re = _.clone( obj );

var obj = {
	music :  "金管五重奏によるドラゴンクエスト",
	author : "すぎやまこういち"
}
var obj2 = {
	music :  "弦楽四重奏によるドラゴンクエスト",
	author : "すぎやまこういち"
}
var func = function(){
	return  _.clone( arguments );
}
// re = { "0" : {"music":"金管五重奏によるドラゴンクエスト","author":"すぎやまこういち"}, "1" : {"music":"弦楽四重奏によるドラゴンクエスト","author":"すぎやまこういち"} };
var re = func( obj, obj2 );

■内部構造

  _.clone = function(obj) {
  	
// 引数が「Object」じゃなかったら。
    if (!_.isObject(obj)) return obj;
    
// 引数が配列だったら obj.slice、配列以外( arguments含む )だったら空のObjectにコピーする(プロトタイプを含む)。
    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
  };

このページのトップへ戻る