日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

深入解析Javascript中this关键字的使用

發布時間:2025/7/14 java 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入解析Javascript中this关键字的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深入解析Javascript中面向對象編程中的this關鍵字

在Javascript中this關鍵字代表函數運行時,自動生成的一個內部對象,只能在函數內部使用。比如:

function TestFunction(){this.demoVal='This is a demo variable'; }; View Code

隨著函數使用的場合不同,this的值會發生改變。但是有一個總的原則:this指的是調用函數的那個對象。

接下來分情況討論this關鍵字的使用:

1. 純粹的函數調用(這是函數的通常用法,屬于全局性調用),this代表全局性對象Global.Demo程序如下:

function TestFunction(){this.demoVal='This is a demo variable';alert(this.demoVal); };TestFunction(); //This is a demo variable View Code

接下來證明此時的this代表全局對象,Demo程序如下:

var globalVal='This is a demo global variable';function TestFunction(){alert(this.globalVal); };TestFunction(); //This is a demo global variable View Code

2. 作為對象的方法調用(這時this指向上一級對象),Demo程序如下:

function TestFunction(){alert(this.demoVal); };var obj={}; obj.CallFunction=TestFunction; obj.demoVal='This is a object variable';obj.CallFunction(); //This is a object variable View Code

3. 作為構造函數調用,所謂的構造函數就是通過這個函數生成一個新的Object對象。此時,this就是指向這個新對象。Demo程序如下:

function TestFunction(){this.deomVal='This is a demo variable'; };var obj=new TestFunction();alert(obj.deomVal); //This is a demo variable View Code

接下來的代碼證明this不是指向全局對象:

var demoVal='This is a global variable';function TestFunction(){this.demoVal='This is a local variable'; };var obj=new TestFunction();alert(demoVal); //This is a global variable View Code

以上代碼顯示demoVal值根本沒有改變,因此證明this不是指向全局的對象。

4. 使用apply調用,apply函數可以改變函數的執行上下文,apply是函數對象的一個方法,它的作用是改變函數的調用對象,即函數的執行上下文。它的第一個參數表示改變后調用這個函數的對象, 因此,this指向的是第一個參數,Demo實例如下:

var demoVal='This is a demo variable';function TestFunction(){alert(this.demoVal); };var obj={}; obj.demoVal='This is an object demo variable'; obj.TestFunction=TestFunction;obj.TestFunction.apply(); //This is a demo variable View Code

apply()的參數為空時,默認調用全局對象。因此,這時的運行結果為:'This is a demo variable',證明this指的是全局對象。

如果將以上代碼的最后一行改為:obj.TestFunction.apply(obj),則輸出的結果為:'This is an object demo variable'。證明此時的this指向obj。

?

轉載于:https://www.cnblogs.com/chengbing2011/p/4226285.html

總結

以上是生活随笔為你收集整理的深入解析Javascript中this关键字的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。