摘要:之劍傳說在國,有個關于之劍的傳說,誰作為調用點,誰就是的主人。于是,直屬的函數就會給對象使絆子,發泄自己的不滿,只要是需要之劍的時候,直屬函數就百般刁難。關于之劍傳說我們暫時先說到這吧,欲知后事,下回分解。
this之劍傳說
在javascript國,有個關于this之劍的傳說,誰作為調用點,誰就是this的主人。
調用點是什么?調用點就是函數在代碼中被調用的位置。
函數是javascript國的執法人員,作為一個人民公仆,當然是哪里需要搬哪里,而他執法需要一些震懾別人的武器,this之劍就這樣誕生了。
但是函數不能時時刻刻都拿著武器走在大街上吧,所以javascript國法律規定,只有在執法(被調用)的時候this之劍才起作用。
你認為this之劍是屬于函數的?那就大錯特錯了,想想我們剛才說的,調用點才是this的主人,那么誰是調用點呢?能調用函數的人還用說嗎?當然是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
但有時候,對象旗下的函數能力有限,需要借助window的函數,作為window直屬的函數就不樂意了:“我明明是大佬直屬的部下,為什么要被你個小小的對象調用,我不服。”于是,window直屬的函數就會給對象使絆子,發泄自己的不滿,只要是需要this之劍的時候,直屬函數就百般刁難。
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給每個函數分配了call,apply兩個美女函數部下,
這美人計還真有用,每個函數都成了裙下之臣,乖乖執行對象布置的任務。
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)
說到這兩大美女啊,各有各的喜好,雖然做一樣的任務,但是收參數的方式卻不太一樣,call喜歡一個一個收,apply喜歡打包成數組一起收。
關于this之劍傳說我們暫時先說到這吧,欲知后事,下回分解。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102783.html
摘要:網頁性能測試平臺核心技術使用框架開源工程源碼關于作者陳光劍,花名之劍,一劍江蘇東海人號行走江湖一劍客,字之劍。程序員,詩人作家。 YLazy Web Page Test , 網頁性能測試平臺 核心技術 phantomjs harviewer 使用框架 Springboot,Spring scala,Java JPA Mysql jquery bootstrap adminLTE ...
摘要:網頁性能測試平臺核心技術使用框架開源工程源碼關于作者陳光劍,花名之劍,一劍江蘇東海人號行走江湖一劍客,字之劍。程序員,詩人作家。 YLazy Web Page Test , 網頁性能測試平臺 核心技術 phantomjs harviewer 使用框架 Springboot,Spring scala,Java JPA Mysql jquery bootstrap adminLTE ...
摘要:函數式編程與面向對象編程的類型關聯之劍目錄類型關聯關鍵字里的類型,除了在定義時會產生類型,還可以通過關鍵字來聲明類型。復合類型與關鍵字這種形式的類型稱為復合類型或者也叫交集類型。 函數式編程與面向對象編程[4]:Scala的類型關聯Type Alias 之劍 2016.5.4 23:55:19 類型關聯 Type Alias type關鍵字 scala里的類型,除了在定義clas...
摘要:本文源地址,轉發請注明該地址或地址,謝謝微信公眾號發布的文章和一般門戶網站的新聞文本類型有所不同,通常不能用現有的文本分類器直接對這些文章進行分類,不過文本分類的原理是相通的,本文以微信公眾號文章為對象,介紹樸素貝葉斯分類器的實現過程。 本文源地址:http://www.fullstackyang.com/...,轉發請注明該地址或segmentfault地址,謝謝! 微信公眾號發布的...
閱讀 3221·2021-11-23 09:51
閱讀 3563·2021-11-09 09:46
閱讀 3670·2021-11-09 09:45
閱讀 2943·2019-08-29 17:31
閱讀 1865·2019-08-26 13:39
閱讀 2724·2019-08-26 12:12
閱讀 3622·2019-08-26 12:08
閱讀 2241·2019-08-26 11:31