日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

JS快速掌握ES6的class用法

瀏覽:164日期:2024-03-28 15:09:37
1.如何構(gòu)造?

先復習一下es5常用的構(gòu)建類的方法:首先es5的寫法使用原型進行對象的方法的,為什么不在構(gòu)造函數(shù)里添加方法呢?因為實例化對象的時候,會重復的建立好多相同的方法,浪費資源。所以需要把對象的方法掛載到prtotype里。

關(guān)于new和this的綁定問題,可以大概簡化為:

首先通過new生成一個新的對象 然后讓這個對象綁定到構(gòu)造函數(shù)的this中去 然后綁定這個構(gòu)造對象的原型對象上 最后把這個對象返回給前面定義的對象

那么接下來看例子吧:

fuction Animal(name,age){ this.name = name this.age = age // 這樣是浪費資源的 // this.eat = function(){ // console.log('今天我吃飯了') // }}// 正確做法Animal.prototype.eat=function(){ console.log('今天我吃飯了')}

然后上ES6的class,class很明顯就簡化了這個操作

cosnt dog = new Animal('wangcai',2) // 會報錯,ES6為了修改陋習,和let和const一樣,class不會提升.class Animal{ constroctor(name,age){ this.name = name this.age = age } eat(){ console.log('今天我吃飯了') }}cosnt dog = new Animal('wangcai',2) //正確位置

另外class還添加了靜態(tài)方法,set,get等操作。

class Animal{ constroctor(name,age){ this.name = name this.age = age } eat(){ console.log('今天我吃飯了') } set name(value){ this.tempname ='老鐵'+value } get name(){ return this.tempname } static introuduce(){ console.log('我現(xiàn)在是一個動物類') }}//set() get()const dog = new Animal('giao',2)dog.name='agiao' console.log(dog.name) // 老鐵agiao// 靜態(tài)方法Animal.introuduce() // 我現(xiàn)在是一個動物類

再說繼承之前補充個小知識點,class的方法名可以通過計算屬性的操作來命名

let tempname = 'giao'class Animal{ constroctor(name,age){ this.name = name this.age = age } [tempname](){ console.log('一給我咧giao') }}const xiaoagiao = new Animal('giaoge',30)xiaoagiao.giao() // 一給我咧giao2.繼承

回到繼承這個問題,es5是怎么繼承的呢?

function Animal( name ){ this.name = name}Animal.prototype.break(){ console.log('叫!')}function Dog( name, age ){ Animal.call(this,name) this.age = age}Dog.prototype = new Animal()Dog.prototype.constructor = Dog

那么這個叫組合繼承,怎么個組合法呢?

屬性方面的繼承是借用繼承,可以看到Animal.call(this,name)就是相當于把Animal這個函數(shù)在Dog的構(gòu)造函數(shù)里調(diào)用了一遍而已。雖然屬性他們沒有原型鏈的鏈式聯(lián)通,但是代碼拿過來給Dog都跑了一遍,所以自然就繼承了Animal的name屬性。

Animal.call(this,name)

方法的繼承是原型式繼承,眾所周知,一個函數(shù)會在創(chuàng)建的時候生成一個原型對象,這個函數(shù)的的一個protoype屬性指向他的原型對象,原型對象的constructor屬性指向這個函數(shù)。如果用new來新建這個函數(shù)的實例,這個實例會有一個__proto__的屬性指向函數(shù)的原型對象。所以借用函數(shù)實例會指向函數(shù)原型對象這個特性,我們將被繼承的函數(shù)實例化,然后將這個實例化的對象賦給繼承的構(gòu)造函數(shù)的prototype屬性,這樣就構(gòu)成了一種鏈式結(jié)構(gòu)。但同被繼承的函數(shù)實例化是不具備constructor這個屬性的,我們需要將他的constructor指向繼承的構(gòu)造函數(shù)。

Dog.prototype = new Animal()Dog.prototype.constructor = Dog

所以按照這個套路,我們用es5的語法,將dog函數(shù)繼承了Animal函數(shù)的name和break方法.

那么ES6是怎么做的呢?

class Animal{ constructor( name ){ this.name = name } break(){ console.log('叫!') }}class Dog extends Animal { constructor( name, age ){ super(name) this.age=age }}

現(xiàn)在只需要在聲明Dog類的時候加一個extends Animal,然后再在constructor構(gòu)造函數(shù)里加一個super就好了。

這個super(name)就相當于Animal.call(this,name)了。然后關(guān)于方法的問題,自然就不用擔心了,extends自動就處理好了,就不用再去用prototype亂指了.

以上就是JS快速掌握ES6的class用法的詳細內(nèi)容,更多關(guān)于JS ES6的class用法的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲电影在线| 99国产精品视频免费观看一公开 | 91成人超碰| 亚洲精品.com| 成人羞羞视频在线看网址| 成人国产综合| av资源中文在线| 日韩国产一区| 好吊一区二区三区| 中日韩男男gay无套| 国产一区导航| 日韩欧美在线精品| 国产精品久久久久av蜜臀| 久久激情五月激情| 国产亚洲高清在线观看| 麻豆国产精品| 成人一二三区| 欧美日韩一区二区三区视频播放| 在线亚洲欧美| 视频精品一区| 视频一区欧美日韩| 欧美一级久久| 丰满少妇一区| 国产精品久久久久蜜臀| 欧美一区三区| 国产+成+人+亚洲欧洲在线| 婷婷成人在线| 日韩一区二区三区精品视频第3页| 日韩精品1区2区3区| 国产精品国码视频| 日韩中文在线电影| 在线视频精品| 国产精品一页| 精品日韩视频| 亚洲天堂日韩在线| 欧美激情综合| 久久中文字幕av| 日韩视频1区| 国产精品videosex极品| 久久九九99| 日欧美一区二区| 日韩av有码| 蜜桃一区二区三区在线观看| 国产精品久久777777毛茸茸| 日韩不卡视频在线观看| 亚洲久草在线| 91日韩免费| 丝袜a∨在线一区二区三区不卡| 国产精品欧美三级在线观看| 成人羞羞视频播放网站| 日本电影久久久| 韩国精品主播一区二区在线观看 | 欧美日韩一区二区三区不卡视频| 国模精品一区| 亚洲在线观看| 久久亚洲人体| 中文字幕系列一区| 欧美日韩91| 999久久久精品国产| 日本天堂一区| 激情五月综合网| 国产精品密蕾丝视频下载| 欧美亚洲国产精品久久| 欧美a在线观看| 免费视频一区二区| 美日韩一区二区三区| 老司机精品久久| 欧美精选视频一区二区| 国产精品尤物| 日本欧美在线看| 久久男人天堂| 日韩精品91亚洲二区在线观看| 视频小说一区二区| 国产精品s色| 在线国产精品一区| 色在线视频观看| 日本a口亚洲| 激情婷婷欧美| 欧美国产亚洲精品| 亚洲在线观看| 成人在线视频免费看| 亚洲tv在线| 亚洲欧洲午夜| 婷婷综合六月| 红杏一区二区三区| 久久精品xxxxx| 日韩中文欧美在线| 亚洲一级高清| 人人草在线视频| 91欧美精品| 欧美日韩国产探花| 欧美aa一级| 国产精品夜夜夜| 羞羞答答国产精品www一本| 国产精品原创| 日韩精品一级| 最新日韩av| 日韩久久精品| 黑丝美女一区二区| 福利一区二区三区视频在线观看| 91精品国产自产观看在线| 狠狠色狠狠色综合日日tαg| 国产66精品| 国产精选久久| 日韩av影院| 在线日韩成人| 首页国产欧美日韩丝袜| 精品在线91| 日韩av福利| 国产一区二区三区国产精品| 亚洲三区欧美一区国产二区| 午夜电影亚洲| 欧美午夜精品一区二区三区电影| 精品91福利视频| 国产精品视频一区视频二区| 一区二区日韩免费看| 亚洲免费激情| 激情综合网五月| 欧美日韩精品在线一区| 日韩在线看片| 日韩毛片在线| 久久久久久黄| 久久久国产亚洲精品| 国产高潮在线| 成人精品高清在线视频| 国产精品亚洲片在线播放| 少妇精品久久久一区二区| 蜜桃久久av| 亚洲免费影院| 蜜臀精品一区二区三区在线观看| 久久xxxx精品视频| aa国产精品| 午夜精品一区二区三区国产| 亚洲二区在线| 国产国产精品| 亚州av乱码久久精品蜜桃| 激情五月色综合国产精品| 激情久久中文字幕| 欧美大黑bbbbbbbbb在线| 国产亚洲高清视频| 婷婷久久一区| 狠狠爱www人成狠狠爱综合网| 在线看片不卡| 亚洲欧美日韩一区在线观看| 视频在线观看一区二区三区| 一区二区三区四区精品视频| 一区二区精品| 日韩av电影一区| 欧美精品影院| 捆绑调教美女网站视频一区| 精品高清久久| 少妇久久久久| 国产精品呻吟| 亚洲精品高潮| 国产欧美日韩精品高清二区综合区| 亚洲精品免费观看| 日本aⅴ亚洲精品中文乱码| 国产精品日本一区二区不卡视频 | 欧美在线观看天堂一区二区三区| 国产精品chinese| 欧美丰满日韩| 亚洲性图久久| 亚洲综合图色| 国产福利一区二区三区在线播放| 成人午夜网址| 欧美亚洲在线日韩| 久久xxxx| 国产精品夜夜夜| 久久精品人人| 亚洲精品一区三区三区在线观看| 国户精品久久久久久久久久久不卡| 99国产精品99久久久久久粉嫩| 亚洲三级精品| 精品三级久久久| 国产主播一区| 天堂久久一区| 激情中国色综合| 午夜精品影院| 国产日韩精品视频一区二区三区| 国产一区二区三区探花| 九九综合九九| 日本国产一区| 日韩免费高清| 久久av在线| 国产精品三级| 亚洲手机视频| 日韩国产在线观看一区| 成人影视亚洲图片在线| 国产麻豆综合| 麻豆久久一区二区| 精品在线播放| 欧美日韩网址| 91精品啪在线观看国产18| 亚洲区欧美区| 天堂√中文最新版在线| 午夜在线精品| 久久精品国产99国产精品| 欧美在线亚洲| 国产精品白浆| 欧美午夜不卡|