JS 函式與方法中this指向

2021-10-25 03:37:53 字數 846 閱讀 7472

首先我們要知道,函式跟方法有什麼不同呢?我們平時經常使用的funciton就稱為函式,如果我們把這個函式作為乙個物件的屬性值的時候,就稱這個函式為方法。

接下來我們先來看看函式與方法的this指向的區別。

首先這裡宣告了乙個obj物件,show為這個物件屬性名,且show的屬性值為乙個匿名函式,因此我們把這個函式稱為方法。接著我們又在這個方法裡面宣告了乙個函式並且呼叫。

let name = "這是window下的name";

let obj =

whatname()}};

obj.show();

那麼方法裡面列印的結果跟函式whatname的結果有什麼不同呢?

從中我們可以看到,在方法裡面的this指向的就是obj物件,而whatname函式中的this指的是window物件。

那我們應該怎麼在whatname這個函式裡面拿到obj物件中的屬性值呢?

1. 我們可以通過將方法下面的this指向賦值給乙個常量,然後在函式裡面使用這個常量就能訪問到外部的this了。

let name = "這是window下的name";

let obj =

whatname()}};

obj.show();

2.除了使用常量賦值的方法之外,我們還能使用箭頭函式的方法讓whatname函式獲取到obj下的name。

let name = "這是window下的name";

let obj = ;

whatname()}};

obj.show();

js函式中this的指向

本文是我個人對this指向的一些理解,如有不足之處,還望大家可以批評指正,在此先謝過了!首先,我們來回顧一下es5裡函式的幾種呼叫方式 1 直接呼叫 foo 2 方法呼叫 obj.foo 以上兩種呼叫方法,this的指向可以這樣去確定 函式的呼叫者就是this的指向!例如 obj.foo 裡.foo...

js中改變函式內部this指向的方法

1 call 方法呼叫乙個物件。簡單理解為呼叫函式的方式,但是它可以改變函式的 this 指向 一般應用於繼承 var o function fn a,b fn 此時的this指向的是window fn.call o,1,2 此時的this指向的是物件o,引數使用逗號隔開 經常用域陣列中 var o...

js中this指向與改變

下面展示一些內聯 片。a code block var foo bar 一 普通函式呼叫 指向windows function f01 f01 直接呼叫 二 構造函式呼叫 指向當前例項物件 function f02 name,age var f2 newf02 阿力 18 三 物件方法呼叫 thsi...