坚果大叔 坚果大叔
  • 首页
  • 闲言碎语
  • 技术
  • 生活
  • 记录
  • 朋友
  • 热点新闻
  • 常用代码
  • 工具箱
  • 关于
首页 › 技术 › JavaScript之继承(未完待续)

JavaScript之继承(未完待续)

坚果大叔
2019-06-11 17:36:53技术阅读 2,144

JavaScript之继承(未完待续)-坚果大叔

1. 原型链继承

从父级上继承,但是有个问题,如果有多个子类同时继承一个父类,如果改变其中一个子类,其余子类也会跟着改变,这种情况就和数组对象的浅拷贝一样。

function parents(){
    this.name = ['fuqin']
}

parents.prototype.getName = function() {
    console.log(this.name)
}

function child(){}

child.prototype = new parents()

let child1 = new child()

child1.getName() // ['fuqin']

let child2 = new child()

child1.name.push('haha')

let child3 = new child()

child1.getName() //  => ['fuqin', 'haha']
child2.getName() //  => ['fuqin', 'haha']
child3.getName() //  => ['fuqin', 'haha']

2. 构造函数继承

改进了原型链继承的缺点,不会因为某个实例的更改而导致所有继承实例的变化,但是也有它的缺点就是每次创建实例都会创建一遍方法。

function parents(){
    this.name = ['brother']
}

function child(){
    parents.call(this)
}

let child1 = new child()
let child2 = new child()

child1.name.push('haah')

let child3 = new child()

console.log(child1.name) // => ['brother', 'haah']
console.log(child2.name) // => ['brother']
console.log(child3.name) // => ['brother']

// 在构造函数继承中还可以通过call()传递参数

function parents(name){
    this.name = name
}

function child(name){
    parents.call(this,name)
}

let child1 = new child('hh,我是1')
let child2 = new child('hh,我是2')

child1.name // => 'hh,我是1'
child2.name // => 'hh,我是2'
继承
赞赏 赞(0)
本文系作者 @坚果大叔 原创发布在 坚果大叔。未经许可,禁止转载。
周末,天气很棒,瞎溜达
上一篇
周末出游
下一篇
在小程序中查看
搜你想看的
聚合文章
将博客搬至CSDN
五月初~
上班啦!
八种让人眼前一亮的CSS HOVER效果~
闲言碎语
Memos
npm install 出现 Error:EISDIR:illegal operation on a directory 的错误提示!
2025-03-31 19:02:11
710 0 0
iphone 利用 Scriptable 添加网上国网电费小组件
2025-01-06 20:40:20
5,838 2
在博客中加上memos记录展示。
2024-12-25 23:41:27
2,757 2
网页点击平滑滚动效果~
2024-10-17 16:43:08
2,215 4
  • 0
博主

一位佛系的前端开发者,略通摄影,乐于尝试新事物,热衷于美食。

友链
故事胶片
公众号
坚果大叔 执行上下文 卖坚果的怪叔叔 Dacking
Copyright © 2017-2025 坚果大叔

开往-友链接力

萌ICP备20230818号

苏ICP备18048410号-3
  • 首页
  • 闲言碎语
  • 技术
  • 生活
  • 记录
  • 朋友
  • 热点新闻
  • 常用代码
  • 工具箱
  • 关于
# CSS # # JavaScript # # vue # # 微信 # # 生活 #
坚果大叔
318
文章
128
评论
368
喜欢