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控件了

你可能感兴趣的:(js)