相思资源网 Design By www.200059.com
js继承方法最主要的是2种,一种是通过原型的方式,一种是通过借用call&apply的构造函数方式。
1.原型(prototype):
function Body(name,age){// 创建一个Body类 this.name = name;// 赋予基础属性name、age this.age = age; } Body.prototype.sayName =function() {// 给原型定义一个sayName的方法 console.log(this.name); } var a = new Body('wutao','10');//创建一个Body的实例对象 function Another(){} Another.prototype = new Body('www');//将Body实例对象给新创建的子类(Another)的prototype属性,这样,Another就拥有了Body的属性和方法 var b = new Another();//创建Another子类的实例 Another.prototype.sex ="mail";//定义子类的属性及方法 Another.prototype.saySex = function(){ console.log(this.sex); } a.sayName();//wutao b.sayName();//www 实例b拥有父类Body的方法sayName b.saySex();//mail 实例b拥有自己定义的方法saySex
2.借用构造函数(call&apply),也可以理解为组合式继承
call:
function Person(name){ this.name = name; this.sayHello = function(){ console.log(this.name); } } function Son(name,age){ Person.call(this,name,age);//call用法:将this指针指向父类构造函数,并依次传入参数,使其拥有父类的属性和方法 this.age = age; this.sayFunc = function(){ console.log(this.name+"-"+this.age); } } var a = new Person('wutao'); var b = new Son("wwwwww",22); a.sayHello();//wutao b.sayHello();//wwwwww; 通过call继承来的父类Person的方法sayHello b.sayFunc();//wwwwww-22
apply:
function Person(name){ this.name = name; this.sayHello = function(){ console.log(this.name); } } function Son(name,age){ Person.apply(this,[name,age]);//apply用法:类似call,将this指针指向父类构造函数,并传入一个由参数组成的数组参数,使其拥有父类的属性和方法 this.age = age; this.sayFunc = function(){ console.log(this.name+"-"+this.age); } } var a = new Person('wutao'); var b = new Son("ttt",222); a.sayHello();//wutao b.sayHello();//ttt;通过apply继承来的父类Person的方法sayHello b.sayFunc();//ttt-222
js最主要的继承方法就这2种,当然,还有几种继承方法,但是有些继承方式在创建了实例之后,修改实例方法和属性会直接修改原型的方法和属性,那这样的继承就显得意义不大了,除非是业务有类似的需求才会去用到。
以上就是关于JavaScript继承方式的详细介绍,希望对大家的学习有所帮助。
标签:
javascript,继承
相思资源网 Design By www.200059.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
相思资源网 Design By www.200059.com
暂无浅析2种JavaScript继承方式的评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。