日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

(五)JS基础知识二(通过图理解原型和原型链)【三座大山之一,必考!!!】

發(fā)布時(shí)間:2023/12/31 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (五)JS基础知识二(通过图理解原型和原型链)【三座大山之一,必考!!!】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

JS基礎(chǔ)知識(shí)二(原型和原型鏈)

  • 提問(wèn)
  • class
  • 繼承
  • 類型判斷(instanceof)
  • 原型
    • 原型關(guān)系
    • 基于原型的執(zhí)行規(guī)則
  • 原型鏈
  • 說(shuō)明

提問(wèn)

  • 如何準(zhǔn)確判斷一個(gè)變量是不是數(shù)組
  • class的原型本質(zhì)
  • 手寫簡(jiǎn)易jQuery考慮插件和擴(kuò)展性

class

class是一個(gè)類,相當(dāng)于模板,可以new一個(gè)類得到對(duì)象/實(shí)例

包含constructor、屬性、方法

// 類 class Student {constructor(name, number) {this.name = namethis.number = number}sayHi() {console.log(`姓名 ${this.name} ,學(xué)號(hào) ${this.number}`)} } // class是一個(gè)類,相當(dāng)于模板,可以new一個(gè)類得到對(duì)象/實(shí)例 // 通過(guò)類 new 對(duì)象/實(shí)例 const xialuo = new Student('夏洛', 100) console.log(xialuo.name) console.log(xialuo.number) xialuo.sayHi()const madongmei = new Student('馬冬梅', 101) console.log(madongmei.name) console.log(madongmei.number) madongmei.sayHi()

繼承

  • extends
  • super:執(zhí)行父類的構(gòu)造函數(shù)、構(gòu)建過(guò)程
  • 擴(kuò)展或重寫方法
// 父類 class People {constructor(name) {this.name = name}eat() {console.log(`${this.name} eat something`)} }// 子類 class Student extends People {constructor(name, number) {super(name)this.number = number}sayHi() {console.log(`姓名 ${this.name} 學(xué)號(hào) ${this.number}`)} }// 子類 class Teacher extends People {constructor(name, major) {super(name)this.major = major}teach() {console.log(`${this.name} 教授 ${this.major}`)} }// 實(shí)例 const xialuo = new Student('夏洛', 100) console.log(xialuo.name) console.log(xialuo.number) xialuo.sayHi() xialuo.eat()// 實(shí)例 const wanglaoshi = new Teacher('王老師', '語(yǔ)文') console.log(wanglaoshi.name) console.log(wanglaoshi.major) wanglaoshi.teach() wanglaoshi.eat()

擴(kuò)展或重寫方法

//手寫簡(jiǎn)易jQuery考慮插件和擴(kuò)展性 class jQuery {constructor(selector) {const result = document.querySelectorAll(selector)const length = result.lengthfor (let i = 0; i < length; i++) {this[i] = result[i]}this.length = lengththis.selector = selector}get(index) {return this[index]}each(fn) {for (let i = 0; i < this.length; i++) {const elem = this[i]fn(elem)}}on(type, fn) {return this.each(elem => {elem.addEventListener(type, fn, false)})}// 擴(kuò)展很多 DOM API }// 插件 jQuery.prototype.dialog = function (info) {alert(info) }// “造輪子” class myJQuery extends jQuery {constructor(selector) {super(selector)}// 擴(kuò)展自己的方法addClass(className) {}style(data) {} }// const $p = new jQuery('p') // $p.get(1) // $p.each((elem) => console.log(elem.nodeName)) // $p.on('click', () => alert('clicked'))

類型判斷(instanceof)

判斷變量屬于哪個(gè)class,屬于哪個(gè)構(gòu)造函數(shù)

xialuo instanceof Student //true xialuo instanceof People //true xialuo instanceof Object //truexialuo instanceof Array //false [] instanceof Array //true [] instanceof Object //true {} instanceof Object //true

原型

  • typeof People === ‘function’ //class實(shí)際上是函數(shù),可見(jiàn)是語(yǔ)法糖
  • hasOwnProperty 判斷是不是自己的屬性
xialuo.hasOwnProperty('name') //true xialuo.hasOwnProperty('saiHi') //false xialuo.hasOwnProperty('hasOwnProperty') //false
  • 隱式原型(proto ),顯式原型(prototype)

原型關(guān)系

  • 每個(gè)class都有顯式原型prototype
  • 每個(gè)實(shí)例都有隱式原型__proto__
  • 實(shí)例的__proto__指向?qū)?yīng)class的prototype

基于原型的執(zhí)行規(guī)則

  • 獲取屬性xialuo.name 或 執(zhí)行方法xialuo.saiHi()時(shí)
  • 先在自身屬性和方法查找
  • 如果找不到則自動(dòng)去__proto__中查找

原型鏈

People.prototype === Student.prototype.__proto__

instanceof判斷技巧:順著變量的隱式原型一直往上找,看能不能對(duì)應(yīng)到class的顯式原型,能instanceof成立,不能返回false

說(shuō)明

  • class是ES6語(yǔ)法規(guī)范,由ECMA委員會(huì)發(fā)布
  • ECMA只規(guī)定語(yǔ)法規(guī)則,即我們代碼的書(shū)寫規(guī)范,不規(guī)定如何實(shí)現(xiàn)
  • 以上實(shí)現(xiàn)方式都是v8引擎的實(shí)現(xiàn)方式,也是主流的

總結(jié)

以上是生活随笔為你收集整理的(五)JS基础知识二(通过图理解原型和原型链)【三座大山之一,必考!!!】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲男人精品 | 黄色茄子视频 | 国产粉嫩在线观看 | 国产视频一二区 | 欧美理论视频 | 非洲黄色大片 | 欧美日韩高清在线观看 | 欧洲人妻丰满av无码久久不卡 | 国产aaaaa毛片 | 无码人妻精品一区二区蜜桃色欲 | 秋霞欧洲| 国产精品久久久久久亚洲 | 欧美.www| 中文字幕在线观看不卡 | 熟女一区二区三区视频 | 动漫美女被到爽流 | 黄色小视频免费网站 | 免费观看h片| 6996电视影片免费看 | 超清纯大学生白嫩啪啪 | 精东影业一区二区三区 | 午夜小视频在线播放 | 欧美性色网站 | av观看免费 | 黄网址在线观看 | 日韩wwww | 91免费网站入口 | 成人在线免费小视频 | 欧美久草视频 | 国产精品色婷婷 | 亚洲一区二区三区四区在线播放 | 免费三级大片 | 这里只有精品视频在线观看 | 成人免费黄色大片 | 国产精品久久久久久亚洲 | 国内精品免费 | 亚洲精品免费在线观看 | 亚洲欧美日韩中文字幕在线观看 | av大片在线观看 | 亚洲色图19p | 天天爱天天做天天爽 | 久久久久国产精品一区 | 51吃瓜网今日吃瓜 | 成人在线观看一区二区三区 | 美女写真福利视频 | 深田咏美在线x99av | 无码人妻精品一区二区三区99日韩 | 吊视频一区二区三区 | 黄a网站 | 国产一区二区三区91 | 人妻 日韩 欧美 综合 制服 | 国产一级片免费看 | 中文字幕久久久久久久 | 国内自拍视频在线观看 | 中文字幕国产在线观看 | 人人妻人人澡人人爽欧美一区 | 99思思 | 成人国产在线 | 欧洲做受高潮免费看 | 日韩欧美精品在线视频 | 精品人妻伦一二三区免费 | 色伊人网| 污片网址 | 乡村性满足hd | 国产伦精品一区二区三区妓女下载 | 日韩欧美成人一区二区 | 一区二区在线免费视频 | 国产麻豆电影在线观看 | 天天伊人网 | www.啪啪.com| 潘金莲黄色一级片 | 成人激情开心网 | 国产九九久久 | 亚洲图片另类小说 | 亚洲网址| 国产在线专区 | 婷婷激情五月综合 | 婷婷色在线 | 国产猛男猛女超爽免费视频 | 日本视频免费在线 | 亚洲hhh| 清清草视频 | 蜜臀av性久久久久蜜臀aⅴ麻豆 | 青草视频在线观看视频 | 日日干天天干 | 波多野结衣在线免费观看视频 | a级片免费视频 | 97成人超碰| 古代黄色一级片 | 丰满人妻av一区二区三区 | 成人免费激情视频 | 久久夫妻视频 | 久久久久久黄色 | 欧美视频在线观看一区二区 | 久99热 | 亚洲性猛交xxxx乱大交 | 亚洲电影中文字幕 | 日本久操| 欧美人妻精品一区二区三区 |