JS this指向分析

2021-09-24 08:02:08 字數 1084 閱讀 5674

//例如:a 在 飯店 吃 餃子

//執行主體就是a 上下文就是飯店 吃餃子就是行為

function 吃餃子()

a.吃餃子()//輸出this ---> 指a

(function() )

//this是誰 和函式在哪定義的和在哪執行的沒有任何關係,就是指執行主體

複製**

1、函式執行,首先看函式前面是否有'.',有的話前面是誰,this就是誰,沒有的話this指window

function

fn() ;

var obj = ;

fn()//this--->指window

var obj = ;

obj.fn()//this指obj

function

sum()

sum();

var oo =

}oo.sum();

複製**

2、自執行函式中的this永遠是指window

3、給元素的的某乙個事件繫結方法,當事件觸發的時候,執行對應的方法,this是指當前的元素

function

fn()

document.getelementbyid('#div1').onclick = fn;

//fn中的this --->指 '#div1'

document.getelementbyid('#div1').onclick = function()

複製**

var num = 20;

var obj =

})(num)

//此處傳參 是全域性變數的num的值20 賦值給了自執行函式的形參 而不是obj的30 如果傳入obj下的30 需要寫成obj.num

}var fn = obj.fn;

fn();//輸出65

obj.fn();//85

console.log(window.num);//240

console.log(obj.num);//120

複製**

JS this指向問題

首先,明確一點,沒有巢狀時,函式中的this指向它的呼叫者.巢狀函式,內部的函式的this指向它的呼叫者 window 不是外層函式 var a fn a.f window其次,函式既可以在當前執行環境中 this指向物件 又可以在全域性環境中 this指向window var obj bar 1 ...

JS this指向問題(2)

var color orange window.color red var person function saycolor person.saycolor saycolor person.saycolor.call saycolor undefined person.saycolor.call s...

關於js this指向的理解

var obj add1 function a var f v v this.count return f.call b,a add2 function a var f function v return f.call b,a console.log obj.add 1 2 console.log ...