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