js如何判断函数或者方法中的this指向谁

JavaScript041

js如何判断函数或者方法中的this指向谁,第1张

谁调用了这个方法,this就指向的谁, 如果想改变this指向可以使用call函数

demo.call(this)

function demo(){

    var _this = this // 这里的this就是上面call方法中传过来的this

}

这简单,你知道js中,函数有两种调用方式,一种是函数调用,一种是方法调用。

举例:

function test(){

console.info(this)

}

var obj = new Object()

obj.val = "去吧!皮卡丘"

obj.test = test//将函数作为函数变量付给对象属性

test()//函数调用

obj.test()//方法调用

函数调用就是直接 test()这种方式运行函数时,this的值 (严格模式下)等于null,(非严格模式)等于全局变量。

方法调用是 将函数作为一个作为属性赋给一个变量。

这时this的值 指代调用上下文,也就是例子中的obj了,但函数最好在调用完成后,返回this,这样就能做出方法链