function DivElement(){
this.ctor.apply(this,arguments);
}
DivElement.prototype = {
obj:{
name:'',
src:''
},
objName:'',
objSrc:'',
ctor:function(){
this.obj.name = arguments[0];
this.obj.src = arguments[1];
this.objName = arguments[0];
this.objSrc = arguments[1];
}
}
var d1 = new DivElement('a','a.jpg');
var d2 = new DivElement('b','b.jpg');
console.log(d1.obj.src); //b.jpg
console.log(d2.obj.src); //b.jpg
console.log(d1.objSrc); //a.jpg
console.log(d2.objSrc); //b.jpg
問題は、d1.obj.src が「a.jpg」ではない理由です。
関数 ctor を次のように書き直すと、次のようになります。
ctor:function(){
this.obj = {name:arguments[0],src:arguments[1]};
this.objName = arguments[0];
this.objSrc = arguments[1];
}
それは正しく動作します!
あそこで何が起こったのか、誰が教えてくれますか...