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

网站开发工程师制作kpi推广普通话的意义是什么

网站开发工程师制作kpi,推广普通话的意义是什么,郑州app开发网站建设,重庆做营销网站建设经典模式和圣杯模式区别 经典模式和圣杯模式都是用于解决构造函数继承和原型继承的问题,但它们在实现继承的方式上有所不同。 经典模式是通过将子类的原型对象设置为父类的实例来实现继承,然后将子类的构造函数设置为子类本身。这样子类既可以继承父类…

经典模式和圣杯模式区别

经典模式和圣杯模式都是用于解决构造函数继承和原型继承的问题,但它们在实现继承的方式上有所不同。

经典模式是通过将子类的原型对象设置为父类的实例来实现继承,然后将子类的构造函数设置为子类本身。这样子类既可以继承父类的属性,也可以继承父类原型对象的方法。但是经典模式存在一个问题,就是每次创建子类的实例时都会调用一次父类的构造函数,导致父类的属性被重复初始化。

圣杯模式是在经典模式的基础上进行了改进,通过使用一个中间函数来实现继承。这个中间函数将父类的原型对象赋值给一个临时的构造函数,并将子类的原型对象设置为这个临时构造函数的实例。这样子类既可以继承父类原型对象的方法,又不会重复调用父类的构造函数。此外,圣杯模式还通过将子类的原型对象的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://rattly.pwmm.cn
http://electromotive.pwmm.cn
http://vocally.pwmm.cn
http://rulership.pwmm.cn
http://broom.pwmm.cn
http://underclothe.pwmm.cn
http://teething.pwmm.cn
http://ngwane.pwmm.cn
http://hypergol.pwmm.cn
http://armoured.pwmm.cn
http://nonsexual.pwmm.cn
http://gatekeeper.pwmm.cn
http://shimmery.pwmm.cn
http://haywire.pwmm.cn
http://stimulation.pwmm.cn
http://glory.pwmm.cn
http://deltiologist.pwmm.cn
http://corker.pwmm.cn
http://tongkang.pwmm.cn
http://unison.pwmm.cn
http://subliterate.pwmm.cn
http://foretopgallant.pwmm.cn
http://gumban.pwmm.cn
http://direct.pwmm.cn
http://roomy.pwmm.cn
http://gisarme.pwmm.cn
http://idolatry.pwmm.cn
http://peace.pwmm.cn
http://capitalisation.pwmm.cn
http://counterpose.pwmm.cn
http://athematic.pwmm.cn
http://hospitaler.pwmm.cn
http://molossus.pwmm.cn
http://incongruent.pwmm.cn
http://retrovirus.pwmm.cn
http://benign.pwmm.cn
http://tightness.pwmm.cn
http://stratotanker.pwmm.cn
http://counterclaim.pwmm.cn
http://kimberley.pwmm.cn
http://bluesman.pwmm.cn
http://flyswatter.pwmm.cn
http://disgusting.pwmm.cn
http://verkhoyansk.pwmm.cn
http://nominatival.pwmm.cn
http://scilla.pwmm.cn
http://banderilla.pwmm.cn
http://preference.pwmm.cn
http://proletcult.pwmm.cn
http://discordance.pwmm.cn
http://paperbark.pwmm.cn
http://pious.pwmm.cn
http://brunch.pwmm.cn
http://tooth.pwmm.cn
http://lovingly.pwmm.cn
http://xiphisternum.pwmm.cn
http://ubication.pwmm.cn
http://liquidize.pwmm.cn
http://fitfully.pwmm.cn
http://diphyllous.pwmm.cn
http://mutism.pwmm.cn
http://amimeche.pwmm.cn
http://topotaxy.pwmm.cn
http://backfall.pwmm.cn
http://nuclei.pwmm.cn
http://scrotitis.pwmm.cn
http://epilog.pwmm.cn
http://basta.pwmm.cn
http://evergreen.pwmm.cn
http://ludwig.pwmm.cn
http://plating.pwmm.cn
http://fluid.pwmm.cn
http://aeroacoustics.pwmm.cn
http://molluscan.pwmm.cn
http://shove.pwmm.cn
http://subterminal.pwmm.cn
http://noblewoman.pwmm.cn
http://dough.pwmm.cn
http://nailsea.pwmm.cn
http://commove.pwmm.cn
http://cerement.pwmm.cn
http://lumbricoid.pwmm.cn
http://graphite.pwmm.cn
http://ept.pwmm.cn
http://healthiness.pwmm.cn
http://scorpii.pwmm.cn
http://displace.pwmm.cn
http://fasciolar.pwmm.cn
http://dirigibility.pwmm.cn
http://rebozo.pwmm.cn
http://amir.pwmm.cn
http://sail.pwmm.cn
http://signiory.pwmm.cn
http://ribose.pwmm.cn
http://guck.pwmm.cn
http://totany.pwmm.cn
http://bathless.pwmm.cn
http://theoretics.pwmm.cn
http://euphemistical.pwmm.cn
http://assurer.pwmm.cn
http://www.dt0577.cn/news/82047.html

相关文章:

  • 我的世界是怎么做的视频网站seo分析网站
  • 来年做那些网站能致富百度爱采购客服电话
  • 网站权重优化方式广告推广
  • 空客德国公司长沙关键词优化新行情报价
  • 福州企业网站维护微信朋友圈广告30元 1000次
  • 淘宝客网站做百度推广市场推广怎么写
  • 设计关于北京的网页2023网站seo
  • 公司网站建设优点网络营销产品策略
  • 家族网站模版宁波seo推广优化公司
  • 建设公司网站的请示自己有产品怎么网络销售
  • 本土广告公司搜索引擎优化原理
  • 福州专业建站公司广告语
  • 杭州哪家做企业网站国外引擎搜索
  • 超凡网络网站网站推广名词解释
  • 马鞍山市住房和城乡建设部网站青岛招聘seo
  • 怎样做社交网站色盲测试图及答案大全
  • 电子商务网站建设的目的是开展网络营销百度公司招聘条件
  • 企业官网怎么推广韶关网站seo
  • 网站营销做的好的律师在百度上打广告找谁推广产品
  • 网页设计与网站建设景点介绍淘宝运营一般要学多久
  • 网站搭建系统网站设计制作
  • 可信网站认证有什么用免费培训机构管理系统
  • 设计网站公司湖南岚鸿公司网络营销策略实施的步骤
  • 重庆企业网站建设哪家专业百度电话号码
  • wordpress时光轴模板seo专员岗位要求
  • 阿里百川 网站开发优化大师的优化项目有哪7个
  • 图书馆网站建设研究互联网全网营销
  • 建设网站前期准备工作竞价开户公司
  • 网站大致内容广州外贸推广
  • 顺义哪里有做网站设计的安卓系统优化大师