JavaScript いいこと書いてあった。 John Resig - JavaScript Getters and Setters こういう、アクセサ(getter/setter)があるオブジェクトをベースにして、 var animal = { walk : function(){ alert('walk'); }, get name(){ return this._name; }, set name(name){ this._name = name; }, } 普通の列挙を使ったextendで、他のオブジェクトにプロパティをコピーしようとしても、 function extend(target, source){ for(var prop in source) target[prop] = source[prop]; return target; } 単なるプロパティの値のコピーと解釈