前言


我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷


导语


前端原型和原型链构造函数的使用


#yyds干货盘点# 【js学习笔记三十二】前端原型和原型链构造函数的使用_原型链#yyds干货盘点# 【js学习笔记三十二】前端原型和原型链构造函数的使用_子类_02

代码部分

function Father(name) {
this.name = name
}
Father.prototype.dance = function () {
console.log('I am dancing')
}
function Son(name, age) {
Father.call(this, name)
this.age = age
}
Son.prototype = Father.prototype
//为子类添加方法
Son.prototype.sing = function () {
console.log('I am singing')
}
let son = new Son('小红', 100)
//此时父类也被影响了
console.log(Father.prototype,"father") //{dance:
ƒ, sing: ƒ, constructor: ƒ}

#yyds干货盘点# 【js学习笔记三十二】前端原型和原型链构造函数的使用_子类_03

 总结


利用Son.prototype = Father.prototype改变原型指向,但此时我们给子类增加原型方法,同样会影响到父类。

{dance:
ƒ, sing: ƒ, constructor: ƒ}


代码部分

function Father(name) {
this.name = name
}
Father.prototype.dance = function () {
console.log('I am dancing')
}
function Son(name, age) {
Father.call(this, name)
this.age = age
}
Son.prototype = new Father()
Son.prototype.sing = function () {
console.log('I am singing')
}
let son = new Son('小红', 100)
console.log(Father.prototype,"Father") //{dance: ƒ,
constructor: ƒ}

#yyds干货盘点# 【js学习笔记三十二】前端原型和原型链构造函数的使用_子类_04

 总结


子类的原型指向父类的实例,这样就可以顺着原型链共享父类的方法了。并且为子类添加原型方法的时候,不会影响父类。