摘要:方法調用當一個函數作為一個對象的屬性調用時候下標表達式或者點表達式稱之為方法調用,此時指向這個對象。作為構造函數調用的方式稱為的構造函數,的過程中構造函數的對象的屬性和方法將被加到新對象的屬性上。
this
this是js的一個關鍵字,只能在函數內部使用,在函數運行時候自動生成的內部對象,代表函數運行時候的作用域指向,使用頻率極高!
常用的用法與作用域指向
函數調用:js里面規定當一個函數并非某一個對象,直接調用的時候,稱之為函數調用,此時this指向全局對象Global。
var t = 1; function test(){ console.log(this.t) } test() //1
方法調用:當一個函數作為一個對象的屬性調用時候([fn]下標表達式或者.fn點表達式)稱之為方法調用,此時this指向這個對象。
var t =1; var obj= { t:2, test :function(){ console.log(this.t) } } obj.test() // 2
作為構造函數調用:var test = new fn() 的方式 稱fn為test的構造函數,new的過程中構造函數的this對象的屬性和方法將被加到新對象的屬性上。
function fn(){ this.t = 1 } var test = new fn(); test.t // 1 //fn的this對象會被加到新生成的test對象上
4:apply,call,bind方式調用:apply,call,bind都可以改變一個函數運行時候的this指向。
var t = 1 var test = function(){ console.log(this.t) } test() //1 test.call({t:2}) //2 test.apply({t:3})//3 test.bind({t:4})()//4
關于bind的分析,可以看另一篇文章:bind方法分析與實現
看完了上面4種調用方式可以得出一個結論:this指向的作用域永遠是函數運行時候決定的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80850.html
摘要:復習基礎到底是什么的應用場合極其廣泛。常量不可以通過重新賦值改變其值,也不可以在代碼運行時重新聲明。布爾對象是原始布爾數據類型的一個包裝器整數整數可以用十進制基數為十六進制基數為八進制基數為以及二進制基數為表示。 復習js day1 js基礎 JavaScript 到底是什么 JavaScript 的應用場合極其廣泛。簡單到幻燈片、照片庫、浮動布局和響應按鈕點擊。復雜到游戲、2D 和 ...
摘要:構造函數通常首字母大寫,用于區分普通函數。這種關系常被稱為原型鏈,它解釋了為何一個對象會擁有定義在其他對象中的屬性和方法。中所有的對象,都有一個屬性,指向實例對象的構造函數原型由于是個非標準屬性,因此只有和兩個瀏覽器支持,標準方法是。 從這篇文章開始,復習 MDN 中級教程 的內容了,在初級教程中,我和大家分享了一些比較簡單基礎的知識點,并放在我的 【Cute-JavaScript】系...
摘要:綁定函數被調用時,也接受預設的參數提供給原函數。一個綁定函數也能使用操作符創建對象這種行為就像把原函數當成構造器。 一直很難理解js中的call apply bind,在w3schools,mdn閱讀了,也看了很多相關的文章,今天我來寫下我理解的call apply bind 首先創建一個函數 function man(){} man.prototype = { name: ...
摘要:為了更好的講解構造函數原型原型鏈等,我們需要復習一下函數的一些基礎知識。閉包在復習了函數的相關基礎知識之后,我們終于可以進入閉包。我們可以這樣理解閉包,首先,閉包是一個函數,是一個什么樣子的函數呢是一個可以訪問另一個函數中變量的函數。 為了更好的講解構造函數、原型、原型鏈等,我們需要復習一下函數的一些基礎知識。接下來,就讓我們一起回味一些JS的基礎知識點。 全局變量VS局部變量 簡單粗...
摘要:在創建子類實例時,不能向超類型的構造函數中傳遞參數。構造函數繼承子類傳進的值是基本思想是在子類構造函數的內部調用超類或父類型構造函數。繼承保證構造函數指針指向如果想同時繼承多個,還可使用添加屬性的方式類繼承, OOP:Object Oriented Programming 面向對象編程。 題外話:面向對象的范圍實在太大,先把這些大的東西理解理解。 1.什么是對象? 根據高程和權威指南上...
閱讀 3266·2021-09-02 15:41
閱讀 2829·2021-09-02 09:48
閱讀 1368·2019-08-29 13:27
閱讀 1157·2019-08-26 13:37
閱讀 832·2019-08-26 11:56
閱讀 2479·2019-08-26 10:24
閱讀 1638·2019-08-23 18:07
閱讀 2615·2019-08-23 15:16