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

初创公司 建网站网站建设 sheji021

初创公司 建网站,网站建设 sheji021,东莞网站建设方案外包,微信公众号如何开通一、原型链继承 将父类的实例作为子类的原型 function Father(){this.name Tony }function Son() {}Son.prototype new Father()let son new Son();console.log(son.name) // Tony缺点: 父类所有的引用类型属性都会被所有子类共享,一个子类修改了属…

一、原型链继承

将父类的实例作为子类的原型

function Father(){this.name = 'Tony'
}function Son() {}Son.prototype = new Father()let son = new Son();console.log(son.name) // Tony

缺点:

  1. 父类所有的引用类型属性都会被所有子类共享,一个子类修改了属性值就会影响到其他子类。
  2.  子类不能给父类的构造函数传参

 二、构造函数继承

        在子类构造函数中调用父类构造函数并通过call或apply给父类传参、修改this指向。

function Father(name){this.info = {name:name,job:'teacher'}this.sayName(){console.log(this.info.name)}
}function Son (name){Father.call(this,name)
}let s = new Son('Jerry');let s2 = new Son ('Mike');console.log(s.info.name) //Jerryconsole.log(s2.info.name) // Mike

        通过使用call()apply()方法,Parent构造函数在为Child的实例创建的新对象的上下文执行了,就相当于新的Child实例对象上运行了Parent()函数中的所有初始化代码,结果就是每个实例都有自己的info属性。 

 优点:

  1. 可以给父类传参
  2. 父类的引用类型不会被子类共享

缺点:

  1. 子类不能访问父类原型上定义的方法(prototype上挂在的方法) 

三、组合式继承

        组合式继承综合了原型链继承和构造方法继承的优点,通过原型链继承获得父类原型对象上的属性和方法。通过引用父类构造方法达到隔离子类共享属性,给父类传递参数 。

function Father (name) {this.name=name}Father.prototype.sayName=function(){console.log(this.name)
}function Son (name) {Father.call(this,name)
}
Son.prototype = new Father()
//手动挂载构造起,指向自己的构造方法
Son.prototype.constructor = Sonlet s1 = new Son('Mike')s1.sayName() // Mikelet s2 = new Son('Jerry')s2.sayName() //Jerry

 优点:

  1. 父类的方法可以复用
  2. 子类可以向父类传参
  3. 父类构造函数中的引用类型数据不会被共享

四、原型继承

        对参数对象的一种浅复制 ,当Object.create()只有一个参数时与下面代码中的Object()方法相同

let student = {hobbies:['music','football','basketball']
}function Object (o) {function F(){}F.prototype=oreturn new F()
}let s1 = Object(student)
s1.hobbies.push('sing')console.log(s1.hobbies) //['music', 'football', 'basketball', 'sing']
let s2 = Object(student)
s2.hobbies.push('dance')
console.log(s2.hobbies) //['music', 'football', 'basketball', 'sing','dance']

优点:

  1. 父类方法可复用 

缺点:

  1. 父类的引用会被子类共享
  2. 子类不能向父类传参

五、寄生试继承

         寄生式继承是在原型继承基础上的拓展,类似于一个工厂模式,即创建一个用于封装继承的函数,该函数内部对参数对象做了增强。

function Object (person){function F () {}F.prototype = person;return new F()
}function createObject(person){let obj = Object(person)obj.sayHello = function(){console.log('hello')}return obj
}let person = {name:'tony',age:32
}let p1 = createObject(person)p1.sayHello() //hellop1.name //tony

六、寄生式组合继承

        组合式继承有看似完美却有一个缺点,那就是父类的构造函数会被执行两次,一次是父类实例化时,一类是子类实例化时。这样就会造成内存没必要的消耗,寄生式组合继承正是弥补了这个短板,时目前最为理想的继承方式。

function extend(subClass,superClass){var prototype = object(superClass.prototype);//创建对象prototype.constructor = subClass;//增强对象subClass.prototype = prototype;//指定对象
}

七、ES6继承

class supClass {constructor(name) {this.name = name}sayName(){console.log(this.name)}
}class subClass extends supClass{constructor (name) {super(name)this.name = name}
}let sub = new subClass ('subClass')console.log(sub.name)sub.sayName() // subClass

http://www.yayakq.cn/news/718885/

相关文章:

  • 凡科模板建站国家工信部网站备案
  • c 能用来做网站吗百度seo排名优化助手
  • 唐山展望网站建设建设新网站征求意见
  • 吉野家网站谁做的焦作网站建设策划
  • 怎样用jsp做网站 新手教程做网站和做公众号
  • 包头建设局网站南昌做网站kaiu
  • 网站被墙什么意思句容网页定制
  • 地方门户网站开发月嫂的个人简历网站模板
  • php视频网站怎么做建立网站需要准备的材料
  • 电商网站后台管理系统网站的网络设计公司
  • 网站seo网络优化东莞seo优化指南
  • 建设网站网址关于古风的网站建设项目
  • 钓鱼网站在线生成商丘住房和城乡建设网站
  • 网站建设同行友情链接单页网站 挣钱
  • 网站设计与制作平台网页升级未成年人自觉离开
  • 怎样制作图片网站外包岗位为什么不能去
  • 网站建设技术包括哪些方面十大永久免费服务器ip
  • jsp网站开发实例与发布聚合搜索引擎入口
  • 网站推广途径和要点有哪些集团网站建设调研报告
  • 网站联系方式连接怎么做自助网站建设费用
  • 湘潭培训网站建设小制作手工废物利用
  • 网站实名审核中心个人简历word免费模板
  • 北京做网站s网络营销的推广方式都有哪些
  • 商务网站建设调研不用付费就可以看亏亏的app
  • 网站功能模块结构图古风ppt模板免费下载
  • 建设网站跟服务器得关系私人可以买服务器吗
  • flashfxp上传网站模板建设银行 网站
  • 生产备案号怎么查询网站免费空间禁止做网络验证
  • 网站关键词设定在免费空间上传网站为什么访问不了
  • 获取网站后台地址wordpress dedecms哪个好