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

做搜狗网站优化点击百度竞价排名公司

做搜狗网站优化点击,百度竞价排名公司,开个捕鱼网站怎么做,网页设计技术论文范文经典模式和圣杯模式区别 经典模式和圣杯模式都是用于解决构造函数继承和原型继承的问题#xff0c;但它们在实现继承的方式上有所不同。 经典模式是通过将子类的原型对象设置为父类的实例来实现继承#xff0c;然后将子类的构造函数设置为子类本身。这样子类既可以继承父类…经典模式和圣杯模式区别 经典模式和圣杯模式都是用于解决构造函数继承和原型继承的问题但它们在实现继承的方式上有所不同。 经典模式是通过将子类的原型对象设置为父类的实例来实现继承然后将子类的构造函数设置为子类本身。这样子类既可以继承父类的属性也可以继承父类原型对象的方法。但是经典模式存在一个问题就是每次创建子类的实例时都会调用一次父类的构造函数导致父类的属性被重复初始化。 圣杯模式是在经典模式的基础上进行了改进通过使用一个中间函数来实现继承。这个中间函数将父类的原型对象赋值给一个临时的构造函数并将子类的原型对象设置为这个临时构造函数的实例。这样子类既可以继承父类原型对象的方法又不会重复调用父类的构造函数。此外圣杯模式还通过将子类的原型对象的constructor属性设置为子类本身来修复原型链断裂的问题。 下面是经典模式和圣杯模式的代码示例 经典模式 function Parent(name) {this.name name; }Parent.prototype.sayHello function() {console.log(Hello, I am this.name); }function Child(name) {Parent.call(this, name); }Child.prototype new Parent(); Child.prototype.constructor Child;圣杯模式 function Parent(name) {this.name name; }Parent.prototype.sayHello function() {console.log(Hello, I am this.name); }function inherit(C, P) {function F() {}F.prototype P.prototype;C.prototype new F();C.prototype.constructor C; }function Child(name) {Parent.call(this, name); }inherit(Child, Parent);经典模式和圣杯模式都是用于实现继承的方式但圣杯模式在解决经典模式中的问题上更加优化和完善。 圣杯模式 1. 原型 原型是JavaScript中用来实现对象之间继承关系的概念。每个JavaScript对象都有一个原型对象它是一个普通的对象包含了对象的属性和方法。当我们访问一个对象的属性或方法时如果对象本身不存在该属性或方法JavaScript会自动去原型对象中查找。 2. 原型链 原型链是一种通过原型对象来实现对象之间继承关系的机制。每个对象都有一个原型对象通过原型链一个对象可以访问其原型对象的属性和方法。原型链是由一系列原型对象组成的当我们访问一个对象的属性或方法时JavaScript会自动沿着原型链向上查找直到找到该属性或方法或者到达原型链的顶端。 3. 继承 继承是一种面向对象编程中的重要概念它允许我们创建一个新的对象并从一个已有的对象中继承属性和方法。通过继承我们可以避免重复编写相同的代码提高代码的复用性和可维护性。 相应的代码示例 a. 原型链继承 原型链继承是一种简单的继承方式它通过将子类的原型对象设置为父类的实例来实现继承。这样子类就可以访问父类原型对象的属性和方法。 function Parent() {this.name Parent; }Parent.prototype.sayHello function() {console.log(Hello, I am this.name); }function Child() {this.name Child; }Child.prototype new Parent();var child new Child(); child.sayHello(); // 输出: Hello, I am Child在这个例子中我们定义了一个父类Parent和一个子类Child。在子类中我们将其原型对象设置为父类的实例这样子类就可以继承父类的属性和方法。在子类的实例中我们可以调用父类原型对象的方法。 b. 构造函数继承 构造函数继承是一种通过调用父类的构造函数来实现继承的方式。子类通过调用父类的构造函数来继承父类的属性并在子类的构造函数中使用call方法来调用父类的构造函数。 function Parent(name) {this.name name; }function Child(name) {Parent.call(this, name); }var child new Child(Child); console.log(child.name); // 输出: Child在这个例子中我们定义了一个父类Parent和一个子类Child。在子类的构造函数中我们使用call方法调用父类的构造函数并将子类的实例作为this参数传递给父类的构造函数。这样子类就可以继承父类的属性。 c. 组合继承 组合继承是一种通过同时使用原型链继承和构造函数继承来实现继承的方式。它通过将子类的原型对象设置为父类的实例并在子类的构造函数中调用父类的构造函数来实现继承。 function Parent(name) {this.name name; }Parent.prototype.sayHello function() {console.log(Hello, I am this.name); }function Child(name) {Parent.call(this, name); }Child.prototype new Parent(); Child.prototype.constructor Child;var child new Child(Child); child.sayHello(); // 输出: Hello, I am Child在这个例子中我们定义了一个父类Parent和一个子类Child。在子类的构造函数中我们使用call方法调用父类的构造函数并将子类的实例作为this参数传递给父类的构造函数。然后我们将子类的原型对象设置为父类的实例并将子类的构造函数设置为子类本身。这样子类既可以继承父类的属性也可以继承父类原型对象的方法。 详细代码说明 a. 原型链继承 function Parent() {this.name Parent; }Parent.prototype.sayHello function() {console.log(Hello, I am this.name); }function Child() {this.name Child; }Child.prototype Object.create(Parent.prototype); Child.prototype.constructor Child;var child new Child(); child.sayHello(); // 输出: Hello, I am Child在这个例子中我们使用Object.create()方法将子类的原型对象设置为父类的原型对象的一个副本。这样子类就可以继承父类原型对象的属性和方法。 b. 构造函数继承 function Parent(name) {this.name name; }Parent.prototype.sayHello function() {console.log(Hello, I am this.name); }function Child(name) {Parent.call(this, name); }var child new Child(Child); child.sayHello(); // 输出: TypeError: child.sayHello is not a function在这个例子中我们通过调用父类的构造函数来继承父类的属性但是子类无法继承父类原型对象的方法。 c. 组合继承 function Parent(name) {this.name name; }Parent.prototype.sayHello function() {console.log(Hello, I am this.name); }function Child(name) {Parent.call(this, name); }Child.prototype Object.create(Parent.prototype); Child.prototype.constructor Child;var child new Child(Child); child.sayHello(); // 输出: Hello, I am Child在这个例子中我们使用Object.create()方法将子类的原型对象设置为父类的原型对象的一个副本并将子类的构造函数设置为子类本身。这样子类既可以继承父类的属性也可以继承父类原型对象的方法。
http://www.hkea.cn/news/14489287/

相关文章:

  • 桐乡建设规划局网站好的建筑设计网站推荐
  • 专业购物网站建设报价建设工程施工合同下载
  • 网站建设中如何发布信息推广重庆网架加工厂
  • 深圳好的网站建关键词挖掘查询工具爱站网
  • 双阳区住房和城乡建设局网站东莞宣布优化防疫措施
  • 哈尔滨网站建设策划方案iis 网站设置
  • 阜城县网站建设地方网站 o2o
  • 如何做自己的网站后台酒店网站建设目标
  • 定制网站开发哪家好佛山专业画册设计公司
  • 网站模板修改工具上海网站建设公司大全
  • 手机网站建设请示百合seo培训
  • 网站怎么做成二维码手机如何制作网址
  • 物流企业网站建设步骤深圳app开发价格
  • 徐州网站建设咨询成全视频在线观看免费看
  • 网站建设收费标准效果wordpress建站教程 cms
  • 外国购物平台网站大全石家庄最新封闭消息
  • 案例展示在网站中的作用长沙编程培训学校哪家好
  • 医院网站源码php搜索关键词排名查询
  • 360网站推广官网硅钙钾镁肥汕头免费自助建站模板
  • 城关网站seo南宁网站开发gxjzdrj
  • 网站建设包含哪些方面wordpress 大于2m的xm
  • 网站建设 肥城全国工业设计大赛官网
  • 湖南兼职网站建设建设局副局长
  • wordpress主题修改导航链接关键词优化公司网站
  • 定州网站制作多少钱购物型网站建设
  • asp+sql server典型网站建设案例h5案例
  • windows7 iis配置 网站公司网站建设需要注意事项
  • 石狮市建设局网站heroku wordpress
  • 哪个网站做清洁的活多精品毛卡卡1卡2卡3麻豆
  • 煤矿网站建设济宁网站建设优惠