js 的原型构造原来是这样子啊
js 的原型构造原来是这样子啊 js 的原型构造原来是这样子啊 1.一个对象必须具有继承能力,这是象的一个通用性 2.一个对象必须具有一定的表达能力,对于Web的代码编写这个能力也很重要 3.构造一个Web元素 这是一个定义: function person(first_name,family_name){ this.name=function (){return this.family_name+' '+this.first_name;} this.setName(first_name,family_name); } 现在让这个对象可以进行表达: //设置属性的必要方法 person.prototype.setName=function(f1,f2){ if(!this.first_name)this.first_name=f1; if(!this.family_name)this.family_name=f2;//坐不改名,立不改姓啊 } //他会说出自己的名子 person.prototype.toString=function(){return 'I\'m '+this.name();} 现在对这个原型进行扩展,来构造一个新的对象。 function teacher(first_name,family_name){ this.job='teacher'; this.setName(first_name,family_name); } //这样他就是一个人了 teacher.prototype=new person; //不同的人会说不同的话 teacher.prototype.toString=function(){return 'I\'m is a teacher,I\'m name is '+this.name()} 这样,这个对象同样具有表达能力. 所以谓Web的表达能力,也就是可以上一个对象通过document.write(),或者是alert()等真接输出对象的描述, 对于Weg元素来说,这重表达能力很重要。因为,这样可以直接输出HTML function Element() { this.HTML=""; } Element.prototype.toString=function(){return this.HTML;} Button.prototype=new Element; function Button(caption,event) { this.caption=caption; this.event=event; this.HTML='<BUTTON onclick='+this.event+'>'+this.caption+'</BUTTON>'; } t=new Button('button1','alert(this.innerText)'); document.write(t); 这只是一个简单的元素,不过通过这个同样可以构造更复杂的Web控件了 |