1. 输出结果div1,div2,div2是因为
return FnTable.fn.init(parentid,columns); 这个return 的结果的原型的引用还是指向FnTable本身,所以下面两个赋值操作都是同一个对象,所以变化了.
记住:javascript中的每个对象都有prototype属性,Javascript中对象的prototype属性的解释是:返回对象类型原型的引用。
下面的结果输出为:div1,div1,div2,
/* FnTable 对象声明 */
var FnTable = function(parentid, columns) {
this.ParentID = parentid;
this.Columns = columns;
}
FnTable.prototype.ShowID= function(){
return alert(this.ParentID);
}
/* FnTable 对象调用 */
var columns = [ {
name : "ID",
title : "编号"
}, {
name : "Name",
title : "名称"
} ];
/*测试*/
var table1 = new FnTable("div1", columns);
table1.ShowID();
var table2 = new FnTable("div2", columns);
table1.ShowID();
table2.ShowID();