首页 > 代码库 > js类(继承)(一)
js类(继承)(一)
//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 |
直接定义prototype似乎更有extends 的意韵
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 |
文章出自:http://www.cnblogs.com/frostbelt/archive/2012/04/01/2428014.html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。