改变this指向的三种方式

简介: 改变this指向的三种方式

这周想分享一下我之前考核不知道的一个知识点,即改变this指向的三种方式:

1.call()方法

function.call(thisArg, 参数1, 参数2, 参数3…)

function: 要改变this指向的原函数

thisArg: 要改变到的this指向的目标对象

function fun (name) {
  this.name = name
  console.log(this)
}
var obj = {
  name: 'dpn',
  b: function () {
  console.log(this.name)
  }
}
fun.call(obj, 'dulin') 
//把fun函数的this指向改变到obj函数,改变的name是obj中的name
this输出obj对象,并且name改变为'dulin'

2.apply()方法

function.apply(thisArg, [参数1, 参数2, 参数3…])

function: 要改变this指向的原函数

thisArg: 要改变到的this指向的目标对象

function fun (name) {
  this.name = name
  console.log(this)
}
var obj = {
  name: 'dpn',
  b: function () {
  console.log(this.name)
  }
}
fun.apply(obj, ['dulin'])
//把fun函数的this指向改变到obj函数,改变的name是obj中的name
this输出obj对象,并且name改变为'dulin'

3.bind()方法

funtion.bind(thisArg, 参数1, 参数2, 参数3…)

function: 要改变this指向的原函数

thisArg: 要改变到的this指向的目标对象

该方法并不会调用函数,仅仅改变了this指向

function fun (name) {
  this.name = name
  console.log(this)
}
var obj = {
  name: 'dpn',
  b: function () {
  console.log(this.name)
  }
}
var fun1 = fun.bind(obj, 'dulin')
fun1()
//把fun函数的this指向改变到obj函数,改变的name是obj中的name
this输出obj对象,并且name改变为'dulin'

三种方法的区别

b9618540b3064c2cbe12c3277acc58f5.png

目录
打赏
0
0
0
0
0
分享
相关文章
前端基础(九)_this基本使用、this指向判断、改变this指向的方法
本文介绍了JavaScript中this的基本使用、this指向的判断以及改变this指向的方法。
102 1
前端基础(九)_this基本使用、this指向判断、改变this指向的方法
js中this是指向的哪个全局变量,改变this指向的方法有什么?
js中this是指向的哪个全局变量,改变this指向的方法有什么?
31 0
js中改变this指向、动态指定函数 this 值的方法
js中改变this指向、动态指定函数 this 值的方法
this是指向的哪个全局变量,改变this指向的方法有几种
this是指向的哪个全局变量,改变this指向的方法有几种
91 0
this是指向的哪个全局变量,改变this指向的方法有几种?
this是指向的哪个全局变量,改变this指向的方法有几种?
50 0
|
11月前
|
地址和指针的概念
地址和指针的概念
91 1
C 语言指针完全指南:创建、解除引用、指针与数组关系解析
创建指针 我们可以使用引用运算符 & 获取变量的内存地址:
371 0
js中this是指向的哪个全局变量,改变this指向的方法有什么
js中this是指向的哪个全局变量,改变this指向的方法有什么
53 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等