日韩性视频-久久久蜜桃-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 | 日本一区二区欧美 | 中文字幕丰满乱子伦无码专区 | 超碰青草 | 日本久久久久久久久 | www亚洲色图 | 欧美高清精品一区二区 | 依人综合网 | www.嫩草.com | 最新版天堂资源在线 | av导航网站 | 国产麻豆精品在线观看 | 午夜视频欧美 | 欧美成人午夜免费视在线看片 | 久久久久久国产精品无码 | 97精品在线 | 伊人黄网 | 五月天av网 | av在线www | 欧美久久久精品 | 久久午夜网| 国产九九热| 国产suv精品一区二区三区 | 成人免费观看a | 神马久久精品 | 老牛嫩草二区三区观影体验 | 五月综合久久 | 日韩激情一区二区三区 | 少妇名器的沉沦 | 婷婷成人av | 曰本黄色大片 | 免费高清成人 | 欧美不卡高清 | 99热偷拍| 老熟妇毛茸茸 | 锕锕锕锕锕锕锕锕 | av网站在线免费播放 | 猫咪av在线| 一区三区视频在线观看 | 国产精品v亚洲精品v日韩精品 | 自拍偷拍在线播放 | 成人黄色在线网站 | 欧美 日韩 国产 亚洲 色 | 欧美亚洲天堂网 | 欧美激情免费在线观看 | 浓精喷进老师黑色丝袜在线观看 | 免费看欧美一级片 | 日韩在线第一 | 147人体做爰大胆图片成人 | 狠狠躁夜夜 | 都市激情校园春色 | 成人性生交大片免费卡看 | 黄在线免费观看 | 婷婷丁香视频 | 男人天堂aaa | 亚洲天堂av电影 | 色窝在线 | 亚洲成人91 | 欧美日韩亚洲精品一区二区 | 日本特级黄色录像 | 亚洲欧美自拍另类 | 青青在线 | 岛国精品在线观看 | 黄色片在线免费看 | 黄色香蕉网 | 精品一区二区三区四区五区六区 | 偷偷操不一样 | 日本一区二区视频免费 | 综合中文字幕 | av一二三四 | a一级网站 | 日日夜夜爱 | 图片区小说区视频区 | www.久久综合| 欧美日本一本 | 99久久综合网 | 日本三级黄在线观看 | 色久av| 久久精品丝袜高跟鞋 | 中文字幕av久久爽一区 | 午夜精品福利一区二区三区蜜桃 | 久久网av | 三年大片在线观看 | 日韩有码第一页 | 日日摸夜夜添狠狠添久久精品成人 | 成人在线免费网站 | 最新中文字幕在线视频 | 国产精品久久免费视频 | 97人人澡人人爽人人模亚洲 | 成人在线免费看片 | 四虎精品成人免费网站 | 九热精品 | 日韩在线视频一区二区三区 | 日韩国产欧美 | 韩国19主播内部福利vip | 五月婷婷俺也去 | 美女隐私免费网站 | 久久综合国产 |