欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

JavaScript函數(shù)中this有哪些不同的指向

這篇文章主要介紹了JavaScript函數(shù)中this有哪些不同的指向,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站制作、大冶網(wǎng)絡(luò)推廣、微信小程序開(kāi)發(fā)、大冶網(wǎng)絡(luò)營(yíng)銷(xiāo)、大冶企業(yè)策劃、大冶品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供大冶建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):13518219792,官方網(wǎng)址:chinadenli.net

上下文和this關(guān)鍵字

在JavaScript中,函數(shù)有自己的執(zhí)行上下文,在這里要特別注意下函數(shù)的執(zhí)行上下文不是關(guān)于它是如何聲明的,也不是說(shuō)函數(shù)的作用,而是關(guān)于如何在代碼中調(diào)用它,我們?cè)谡{(diào)用此執(zhí)行上下文時(shí)就會(huì)用到this。當(dāng)this從函數(shù)內(nèi)部訪(fǎng)問(wèn)時(shí),實(shí)際上就是訪(fǎng)問(wèn)其執(zhí)行上下文。

調(diào)用函數(shù)方式與this

上下文取決于函數(shù)的調(diào)用方式,我們可以通過(guò)4種不同的方式來(lái)調(diào)用上下文的函數(shù),因此this也有四種不同的指向

1. 一個(gè)基本的函數(shù)調(diào)用

2. 使用上下文對(duì)象調(diào)用函數(shù),也稱(chēng)為隱式綁定。

3. 使用call()或調(diào)用函數(shù)apply(),也稱(chēng)為顯式綁定。

4. 通過(guò)bind()方法綁定

基本函數(shù)調(diào)用

基本函數(shù)調(diào)用是調(diào)用函數(shù)的最簡(jiǎn)單方法

例:

<script type="text/javascript">
	var name="張三";
	function student(){
		console.log(this.name);
	}
	student();
</script>

JavaScript函數(shù)中this有哪些不同的指向

在這個(gè)例子中可以看出student()是從全局范圍內(nèi)調(diào)用函數(shù),因此這里的this指代的是全局范圍,所以輸出結(jié)果為“”張三“”

隱式綁定

當(dāng)函數(shù)被一個(gè)對(duì)象“包含”的時(shí)候,我們稱(chēng)函數(shù)的this被隱式綁定到這個(gè)對(duì)象里面了

<script type="text/javascript">
var student={
	name:"張三",
	obj:function(){
		console.log(this.name)
	}
}
student.obj();
	</script>

JavaScript函數(shù)中this有哪些不同的指向

obj函數(shù)雖然被放到對(duì)象里去但是并不會(huì)因?yàn)樗欢x在對(duì)象的內(nèi)部就會(huì)與外部產(chǎn)生區(qū)別,在隱式綁定下,obj通過(guò)this還是可以訪(fǎng)問(wèn)到student對(duì)象中的a屬性

顯示綁定

可以使用call()或apply()方法調(diào)用函數(shù),其執(zhí)行上下文顯式綁定到對(duì)象,call和apply可以改變this指向

例:未使用call ()或者apply()時(shí)

<script type="text/javascript">
var name="張三";
var obj = {
	name:"李四",
	fun:function(){
	console.log(this.name);}}
obj.fun();
</script>

JavaScript函數(shù)中this有哪些不同的指向

利用call()使this指向window

<script type="text/javascript">
var name="張三";
var obj = {
name:"李四",
fun:function(){
      onsole.log(this.name);}}
       obj.fun.call(window);
</script>

JavaScript函數(shù)中this有哪些不同的指向

bind()綁定

bind()會(huì)創(chuàng)建一個(gè)函數(shù),函數(shù)體內(nèi)的this對(duì)象的值會(huì)被綁定到傳入bind()第一個(gè)參數(shù)的值,但是bind不執(zhí)行函數(shù),只返回一個(gè)可供執(zhí)行的函數(shù)

<script type="text/javascript">
var a = {
	b : function(){
		var func = function(){
			console.log(this.c);
		}
		func.bind(this)();
	},
	c : 'Hello!'
}
a.b();
	</script>

通過(guò)bind方法將this指向c對(duì)象中的內(nèi)容。

JavaScript函數(shù)中this有哪些不同的指向

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享JavaScript函數(shù)中this有哪些不同的指向內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

網(wǎng)站欄目:JavaScript函數(shù)中this有哪些不同的指向
URL分享:http://chinadenli.net/article38/gidcpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、全網(wǎng)營(yíng)銷(xiāo)推廣、外貿(mào)建站、網(wǎng)站營(yíng)銷(xiāo)、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化