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];
}
它工作正常!
谁能告诉我那边发生了什么...