this,call,apply,bind之間的關係

2021-10-24 04:47:39 字數 1516 閱讀 7014

this指的是函式執行時所在的作用域,就是誰呼叫this,this就指向誰

1、在全域性呼叫this的時候,this就指向window

console.

log(

this

)<

/script>

2、當乙個函式被當成乙個物件的方法呼叫時,this指向這個物件

var a =

} console.

log(a.

fun(

))

3、通過事件來呼叫時,this指向這個函式的呼叫者

>

>

clickbutton

>

body

>

>

var btn = document.

queryselector

('button');

btn.

addeventlistener

('click'

,function()

)script

>

4、在建構函式中的this指向它的例項化物件

function

fun(name)

var fun1 =

newfun

("fun");

console.

log(fun1)

<

/script>

5、箭頭函式中沒有自己的this,它的this是繼承的,預設指向定義時的this,而不是執行時的this

相同點:

1.都是用來改變函式的this物件的指向。

2.第乙個引數都是this要指向的物件。

3.都可以利用後續引數傳參

不同點:

call()方法可以傳遞兩個引數。第乙個引數是指定函式內部中this的指向,第二個引數是函式呼叫時需要傳遞的引數。

call方法中的第乙個引數是必須的,可以是null,undefined,this,但是不能為空.

function

aa(uname)

functionbb(

)var obj=

newbb()

;alert

(obj.name)

var a =

, func2:

function()

.(a)

,100);

}};a.

func2()

// cherry

bind方法會建立乙個新的函式,當被呼叫的時候,將其this關鍵字設定為提供的值,我們必須手動去呼叫。

var a =

}var b = a.fn;

b.bind

(a,1,2

)()//3 //cherry

CGI,FASTcgi,PHP fpm之間的關係

剛開始對這個問題我也挺糾結的,看了 http權威指南 後,感覺清晰了不少。首先,cgi是幹嘛的?cgi是為了保證web server傳遞過來的資料是標準格式的,方便cgi程式的編寫者。web server 比如說nginx 只是內容的分發者。比如,如果請求 index.html,那麼web serv...

配置apache php mysql之間的關係

1 index.php檔案放入 usr local apache2 htdocs 目錄下 其中index.php裡面內容為 phpinfo dbc mysql connect 127.0.0.1 root win2009 if dbc else mysql close dbc2 new mysqli...

usb的endpoint,pipe之間的關係

端點 endpoint 每乙個usb裝置在主機看來就是乙個端點的結合,主機只能通過端點與裝置進行通訊,以使用裝置的功能 每乙個端點實際上就是乙個一定大小的資料緩衝區。管道 pipe 乙個usb管道是驅動程式的乙個資料區緩衝與乙個外設端點的連線,它代表了一種在兩者之間移動資料的能力。一旦裝置被配置,管...