JS中this指向問題

2021-08-27 03:11:09 字數 791 閱讀 2534

解析器在呼叫函式時,每次都會向函式內部傳遞進乙個隱含的引數,這個隱含的引數就是this,this指向的是乙個物件,這個物件我們稱之為函式執行的上下文物件,根據函式的呼叫方式不同,this會指向不同的物件.

簡單來說一下函式中this指向問題,

1.this是什麼?

任何函式本質上都是通過某個物件來呼叫的,如果沒有直接指定就是 window

所以函式內部都有乙個變數this,它的值是呼叫當前函式的物件

2.如何確定this的值?

test()  :  指向window

p.test()  :  指向p

new test()  :  指向 新建立的物件

p.call(obj)  :  指向 obj

function person(color)

this.setcolor = function(color)

} person('red'); // this 指向 window

var p = new person('yellow') // this 指向 p

p.getcolor();// this 指向 p

var obj = {}

p.setcolor.call(obj,'black') // this 指向 obj

var test = p.setcolor;

test();// this 指向 window

function fun1()

fun2() // this 指向 window

} fun1()

JS中this指向問題

函式內部的this之和函式的呼叫方式有關,和函式的定義方式沒有關係functionfn fn windowvar obj obj.fn obj functionfn 或者可以這樣寫自呼叫函式 functionfn div document.queryselector div div.onclick ...

JS中this指向問題

與其它語言相比,js的this關鍵字的指向稍微有點差別。一 全域性環境 首選我們要明確一點,在全域性環境中 在任意函式體外部 無論是嚴格模式還是非嚴格模式,this都指向window。下面,我們來通過幾個例子理解一下。示例1 console.log this 這裡的this在全域性域下,指向wind...

js中this指向問題

一 發現很多人面試的是都都會被問到函式中this指向的問題,今天咱們就來好好捋一捋這個問題,函式中this指向,以及es6箭頭函式this指向的問題 咱們先來看下面乙個例子 window.color red var a function fun fun red a.fun fun a.fun blu...