摘要:之劍傳說在國,有個(gè)關(guān)于之劍的傳說,誰作為調(diào)用點(diǎn),誰就是的主人。于是,直屬的函數(shù)就會(huì)給對(duì)象使絆子,發(fā)泄自己的不滿,只要是需要之劍的時(shí)候,直屬函數(shù)就百般刁難。關(guān)于之劍傳說我們暫時(shí)先說到這吧,欲知后事,下回分解。
this之劍傳說
在javascript國,有個(gè)關(guān)于this之劍的傳說,誰作為調(diào)用點(diǎn),誰就是this的主人。
調(diào)用點(diǎn)是什么?調(diào)用點(diǎn)就是函數(shù)在代碼中被調(diào)用的位置。
函數(shù)是javascript國的執(zhí)法人員,作為一個(gè)人民公仆,當(dāng)然是哪里需要搬哪里,而他執(zhí)法需要一些震懾別人的武器,this之劍就這樣誕生了。
但是函數(shù)不能時(shí)時(shí)刻刻都拿著武器走在大街上吧,所以javascript國法律規(guī)定,只有在執(zhí)法(被調(diào)用)的時(shí)候this之劍才起作用。
你認(rèn)為this之劍是屬于函數(shù)的?那就大錯(cuò)特錯(cuò)了,想想我們剛才說的,調(diào)用點(diǎn)才是this的主人,那么誰是調(diào)用點(diǎn)呢?能調(diào)用函數(shù)的人還用說嗎?當(dāng)然是javascript國最大的官window了。
不信你試試
let name = "window" function fn() { let name = "function" console.log(`I am ${this.name}`) } fn() // I am window
難道只有所有this的主人都是window了嗎?那倒不是,window作為大佬,手下沒些小弟那怎么成,
對(duì)象就是window的忠實(shí)小弟
name = "window" const obj = { name: "obj", fn: function () { console.log(`I am ${this.name}`) } } obj.fn() // I am obj
但有時(shí)候,對(duì)象旗下的函數(shù)能力有限,需要借助window的函數(shù),作為window直屬的函數(shù)就不樂意了:“我明明是大佬直屬的部下,為什么要被你個(gè)小小的對(duì)象調(diào)用,我不服?!庇谑牵?b>window直屬的函數(shù)就會(huì)給對(duì)象使絆子,發(fā)泄自己的不滿,只要是需要this之劍的時(shí)候,直屬函數(shù)就百般刁難。
const someThing = "relax" function windowFn() { console.log(`let me do ${someThing}`) } const obj = { someThing: "work", objFn: windowFn, } obj.objFn() // let me do relax
這可怎么辦啊,對(duì)象也不是吃素的,你有張良計(jì),我有過墻梯。
對(duì)象決定告狀!
window聽了這種事,思索了一下,決定使用美人計(jì),window給每個(gè)函數(shù)分配了call,apply兩個(gè)美女函數(shù)部下,
這美人計(jì)還真有用,每個(gè)函數(shù)都成了裙下之臣,乖乖執(zhí)行對(duì)象布置的任務(wù)。
const someThing = "relax" function windowFn() { console.log(`let me do ${someThing}`) } const obj = { someThing: "work", objFn: windowFn, } obj.objFn.call(obj) obj.objFn.apply(obj)
說到這兩大美女啊,各有各的喜好,雖然做一樣的任務(wù),但是收參數(shù)的方式卻不太一樣,call喜歡一個(gè)一個(gè)收,apply喜歡打包成數(shù)組一起收。
關(guān)于this之劍傳說我們暫時(shí)先說到這吧,欲知后事,下回分解。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/102783.html
摘要:網(wǎng)頁性能測(cè)試平臺(tái)核心技術(shù)使用框架開源工程源碼關(guān)于作者陳光劍,花名之劍,一劍江蘇東海人號(hào)行走江湖一劍客,字之劍。程序員,詩人作家。 YLazy Web Page Test , 網(wǎng)頁性能測(cè)試平臺(tái) 核心技術(shù) phantomjs harviewer 使用框架 Springboot,Spring scala,Java JPA Mysql jquery bootstrap adminLTE ...
摘要:網(wǎng)頁性能測(cè)試平臺(tái)核心技術(shù)使用框架開源工程源碼關(guān)于作者陳光劍,花名之劍,一劍江蘇東海人號(hào)行走江湖一劍客,字之劍。程序員,詩人作家。 YLazy Web Page Test , 網(wǎng)頁性能測(cè)試平臺(tái) 核心技術(shù) phantomjs harviewer 使用框架 Springboot,Spring scala,Java JPA Mysql jquery bootstrap adminLTE ...
摘要:函數(shù)式編程與面向?qū)ο缶幊痰念愋完P(guān)聯(lián)之劍目錄類型關(guān)聯(lián)關(guān)鍵字里的類型,除了在定義時(shí)會(huì)產(chǎn)生類型,還可以通過關(guān)鍵字來聲明類型。復(fù)合類型與關(guān)鍵字這種形式的類型稱為復(fù)合類型或者也叫交集類型。 函數(shù)式編程與面向?qū)ο缶幊蘙4]:Scala的類型關(guān)聯(lián)Type Alias 之劍 2016.5.4 23:55:19 類型關(guān)聯(lián) Type Alias type關(guān)鍵字 scala里的類型,除了在定義clas...
摘要:本文源地址,轉(zhuǎn)發(fā)請(qǐng)注明該地址或地址,謝謝微信公眾號(hào)發(fā)布的文章和一般門戶網(wǎng)站的新聞文本類型有所不同,通常不能用現(xiàn)有的文本分類器直接對(duì)這些文章進(jìn)行分類,不過文本分類的原理是相通的,本文以微信公眾號(hào)文章為對(duì)象,介紹樸素貝葉斯分類器的實(shí)現(xiàn)過程。 本文源地址:http://www.fullstackyang.com/...,轉(zhuǎn)發(fā)請(qǐng)注明該地址或segmentfault地址,謝謝! 微信公眾號(hào)發(fā)布的...
閱讀 3291·2021-11-23 09:51
閱讀 3633·2021-11-09 09:46
閱讀 3794·2021-11-09 09:45
閱讀 3023·2019-08-29 17:31
閱讀 1916·2019-08-26 13:39
閱讀 2776·2019-08-26 12:12
閱讀 3682·2019-08-26 12:08
閱讀 2288·2019-08-26 11:31