js类(继承)(一)
2020-12-13 02:39
                         标签:blog   class   code   java   ext   c    直接定义prototype似乎更有extends 的意韵     文章出自:http://www.cnblogs.com/frostbelt/archive/2012/04/01/2428014.html js类(继承)(一),搜素材,soscw.com js类(继承)(一) 标签:blog   class   code   java   ext   c    原文地址:http://www.cnblogs.com/yichengbo/p/3719164.html
       //call()//调用一个对象的一个方法,以另一个对象替换当前对象。//call([thisObj[,arg1[, arg2[,   [,.argN]]]]])//参数//thisObj //可选项。将被用作当前对象的对象。 //arg1, arg2, , argN //可选项。将被传递方法参数序列。 //说明//call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。//如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。function Person(name){    //父类
    this.name=name;
    this.SayHello=function(){alert("Hello, I‘m "+this.name);};
}function Employee(name,salary){   //子类
    Person.call(this,name);       //将this传给父构造函数
    this.salary=salary;
    this.ShowMeTheMoney=function(){alert(this.name+" $"+this.salary);};
}var BillGates=new Person("Bill Gates");
var SteveJobs=new Employee("Steve Jobs",1234);
BillGates.SayHello();  //显示:I‘m Bill Gates
SteveJobs.SayHello();  //显示:I‘m Steve Jobs
SteveJobs.ShowMeTheMoney();  //显示:Steve Jobs $1234
alert(BillGates.constructor == Person);   //true
alert(SteveJobs.constructor == Employee); //true 
       function Person(name){    //父类
    this.name=name;
    this.SayHello=function(){alert("Hello, I‘m "+this.name);};
}function Employee(salary){   //子类
    this.salary=salary;
    this.ShowMeTheMoney=function(){alert(this.name+" $"+this.salary);};
}Employee.prototype=new Person("Steve Jobs");
var SteveJobs=new Employee(1234);
SteveJobs.SayHello();  //显示:I‘m Steve Jobs
SteveJobs.ShowMeTheMoney();  //显示:Steve Jobs $1234