1 Star 0 Fork 0

癫疯丶歌谣/前端牛客网面试题刷题

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
寄生组合式继承220329.html 1.48 KB
一键复制 编辑 原始数据 按行查看 历史
yaojian01_ext 提交于 2022-03-29 20:48 . 修改
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>寄生组合式继承</title>
</head>
<body>
<script>
function inheritPrototype(Son, Father) {
var prototype = Object.create(Father.prototype) // 创建对象,创建父类原型的一个副本
prototype.constructor = Son // 增强对象,弥补因重写原型而失去的默认的constructor 属性
Son.prototype = prototype // 指定对象,将新创建的对象赋值给子类的原型
}
0
// 父类初始化实例属性和原型属性
function Father(name) {
this.name = name
this.colors = ['red', 'blue', 'green']
}
Father.prototype.sayName = function () {
console.log(this.name)
}
// 借用构造函数传递增强子类实例属性(支持传参和避免篡改)
function Son(name, age) {
Father.call(this, name)
this.age = age
}
// 将父类原型指向子类
inheritPrototype(Son, Father)
// 新增子类原型属性
Son.prototype.sayAge = function () {
console.log(this.age)
}
var instance1 = new Son('xyc', 23)
var instance2 = new Son('lxy', 23)
instance1.colors.push('2') // ["red", "blue", "green", "2"]
console.log(instance1)
instance1.colors.push('3') // ["red", "blue", "green", "3"]
console.log(instance1)
</script>
</body>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/geyaoisgeyao/geyao.git
git@gitee.com:geyaoisgeyao/geyao.git
geyaoisgeyao
geyao
前端牛客网面试题刷题
master

搜索帮助