JavaScript面向对象

代码:form.html

Title

FormBuilder.js:

(function(window){//自调用的匿名函数,window对象是全局的,可直接使用FormBuilder,匿名函数中定义的的变量,函数都不会污染全局作用域。体现封装性。

//创建构造函数FormBuilder

var FormBuilder=function(data){

this.data=data;

var builder={

toHTML:function(obj){

//访问对象的属性,返回结果

var html=this.item[obj.tag](this.attr(obj.attr),obj.option);

//“this.item[obj.tag]()" 用于根据obj.tag的值来调用item对象中的万法。例如,当obj.tag的值为input时,就表示调用builder item.input()方法。item对象是builder对象的一个属性,该对象内包含了input()、select()和 textarea()3个方法,分别用于生成';

}

}

};

编写create()方法:

FormBuilder.prototype.create=function(){

var html='';

for (var k in this.data){

var item ={tag:'',text:'',attr:{},option:null};

for(var n in this.data[k]){

item[n]=this.data[k][n];

}

html+=builder.toHTML(item);

}

return '

'+html+'
';

};

};

window.FormBuilder=FormBuilder;

})(window);

你可能感兴趣的:(JavaScript面向对象)