前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

继承

作者头像
wade
发布2020-04-24 11:31:46
3690
发布2020-04-24 11:31:46
举报
文章被收录于专栏:coding个人笔记coding个人笔记

JavaScript是弱类型语言,但本身的面向对象思想也是很强大的,继承也是一大核心。两个常用继承:

先定义一个父类,顺便展示原型链的使用。

代码语言:javascript
复制
function user() {
 this.name = name || 'wade';
 this.age = function () {
 console.log(this.name + '的年龄30');
    }
}
user.prototype.height = function () {
 console.log(this.name + '的身高193');
}
var user = new user();
console.log(user.name);//wade
user.age();//wade的年龄30
user.height();//wade的身高193
通过原型链继承:
function Son() {

}
Son.prototype = new User();
var son = new Son();
console.log(son.name);//wade
son.age();//wade的年龄30
son.height();//wade的身高193
但是当你想要修改某个父类已有的属性的时候,必须是在继承之后修改,否则会被父类覆盖
function Son() {

}
Son.prototype.name = 'kobe';//在继承之前修改,下面还是输出name为wade
Son.prototype = new User();
Son.prototype.name = 'kobe';//在继承之后修改,下面输出的为kobe
var son = new Son();
console.log(son.name);//wade
son.age();//wade的年龄30
son.height();//wade的身高193
这个继承方法,没办法实现多继承,意思是继承了一个之后是不能再继承另外一个,也不能向父类传递参数,修改原有的属性需要new之后。
构造继承:
function Son(name) {
 User.call(this);
 this.name = name || 'kobe';
}
var son = new Son();
console.log(son.name);
son.age();

用这个继承方法,可以实现多个继承,也可以传递参数。

继承的实现方式还有好几种,本人认为这是常用的,当然,应该也会有一些细节或者是原理我讲的不对,欢迎指正。

(完)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档