当前位置: 首页 > wzjs >正文

关于dw做网站seo发帖软件

关于dw做网站,seo发帖软件,影视网站建设要多少钱,网站需求设计文档一、继承的本质 继承:子对象可以自动拥有父对象的属性和方法,就像孩子继承父母的基因。JavaScript 的继承:通过原型链实现(原型和原型链是底层核心)。 二、4 种常见继承方式 1. 原型链继承(传家宝模式&am…

一、继承的本质

  • 继承:子对象可以自动拥有父对象的属性和方法,就像孩子继承父母的基因。
  • JavaScript 的继承:通过原型链实现(原型和原型链是底层核心)。

二、4 种常见继承方式

1. 原型链继承(传家宝模式)
  • 原理:将父类的实例作为子类的原型
  • 优点:子类能继承父类原型上的方法
  • 缺点:所有子类实例共享父类的引用属性(如数组、对象)
function 父亲() {this.财产 = ["房子", "车子"];
}
父亲.prototype.姓氏 = "张";function 儿子() {}
儿子.prototype = new 父亲(); // 继承const 大儿子 = new 儿子();
大儿子.财产.push("存款"); // 修改会影响所有子类
const 二儿子 = new 儿子();
console.log(二儿子.财产); // ["房子", "车子", "存款"](问题!)

2. 构造函数继承(复制家产模式)
  • 原理:在子类构造函数中调用父类构造函数
  • 优点:每个子类实例有独立的属性
  • 缺点:无法继承父类原型上的方法
function 父亲() {this.=;
}
父亲.prototype.说姓氏 = function() {console.log("我姓" + this.);
};function 儿子() {父亲.call(this,); // 继承属性
}const 小明 = new 儿子("王");
console.log(小明.); // "王"
小明.说姓氏(); // 报错!(无法继承原型方法)

3. 组合继承(家产+家训双传模式)
  • 原理:原型链继承 + 构造函数继承组合
  • 优点:既能继承属性,又能继承原型方法
  • 缺点:父类构造函数被调用两次,效率略低
function 父亲() {this.=;
}
父亲.prototype.说姓氏 = function() {console.log("我姓" + this.);
};function 儿子(,) {父亲.call(this,); // 第1次调用父构造函数(继承属性)this.=;
}
儿子.prototype = new 父亲(); // 第2次调用父构造函数(继承原型)
儿子.prototype.constructor = 儿子; // 修复构造函数指向const 小明 = new 儿子("张", "小明");
小明.说姓氏(); // "我姓张"

4. 寄生组合继承(完美模式)
  • 原理:通过拷贝父类原型,避免重复调用父类构造函数
  • 优点:解决组合继承的效率问题
  • 推荐:ES6 class 继承的底层实现方式
function 继承原型(子类, 父类) {const 原型副本 = Object.create(父类.prototype); // 复制父类原型原型副本.constructor = 子类; // 修正构造函数子类.prototype = 原型副本;
}function 父亲() {this.=;
}
父亲.prototype.说姓氏 = function() {console.log("我姓" + this.);
};function 儿子(,) {父亲.call(this,); // 只调用一次父构造函数this.=;
}
继承原型(儿子, 父亲); // 继承原型方法const 小明 = new 儿子("李", "小明");
小明.说姓氏(); // "我姓李"

三、现代写法(ES6 class 语法糖)

class 父亲 {constructor() {this.=;}说姓氏() {console.log(`我姓${this.}`);}
}class 儿子 extends 父亲 {constructor(,) {super(); // 相当于 Father.call(this, 姓)this.=;}
}const 小明 = new 儿子("赵", "小明");
小明.说姓氏(); // "我姓赵"
  • 本质classextends 是语法糖,底层基于寄生组合继承。

四、继承方式对比

继承方式优点缺点适用场景
原型链继承简单共享引用属性小型项目
构造函数继承独立属性无法继承原型方法需要属性隔离
组合继承属性独立 + 继承原型方法父类构造函数调用两次传统项目
寄生组合继承最优解实现稍复杂中大型项目
ES6 class语法简洁需支持 ES6现代项目

总结

  • 核心原则:通过原型链实现属性和方法的传递。
  • 推荐方案
    • 现代项目:直接用 ES6 class
    • 传统项目:手动实现寄生组合继承
  • 一句话记忆:继承就是「子承父业」,JavaScript 靠原型链实现! 👨👦
http://www.dtcms.com/wzjs/173668.html

相关文章:

  • 浮雕模东莞网站建设数据分析培训
  • 2022年即将上市的手机重庆seo关键词优化服务
  • 如何给网站做2维码网络推广营销网
  • 网页优化怎么做北京网站优化策略
  • 网站keywords网络排名优化软件
  • 网上购物网站模板房地产销售
  • 福州网站建设网站设计网站推广百度网站提交收录入口
  • 金汇网站建设google搜索下载
  • 长春网站建设模板自助建站系统哪个好
  • 华为网站建设方案模板下载免费推广的途径与原因
  • wordpress第一张图片为特色图片给网站做seo的价格
  • 青海省建设局网站首页优化网站排名软件
  • 有没有可以做app的网站香港旺道旺国际集团
  • 龙岗网站建设公司热门国际新闻
  • wordpress 导入网站新闻头条今日新闻下载
  • 网站域名后缀区别站长申论
  • 建设工程类网站安卓优化大师
  • 深圳福田做网站公司哪家好镇江网站建设方案
  • 手机网络工具百度的seo关键词优化怎么弄
  • 泉州建设网站开发陕西百度代理公司
  • 东莞常平牙科seo关键词推广
  • 抖音里做我女朋友网站属于seo网站优化
  • 自做的网站如何发布全网整合营销推广
  • 做网站发布seo网络推广师招聘
  • 阜阳做网站有吗google高级搜索
  • 广州个人网页制作南宁seo
  • 做代购需要什么网站今天疫情最新消息
  • 做风能的网站移动建站优化
  • 织梦网站怎么做模板免费快速网站
  • 做网站多少流量可以做广告东莞优化网站关键词优化