189 8069 5689

怎么改变JS中的this指向-创新互联

本篇内容介绍了“怎么改变JS中的this指向”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联专业为企业提供永泰网站建设、永泰做网站、永泰网站设计、永泰网站制作等企业网站建设、网页设计与制作、永泰企业网站模板建站服务,十载永泰做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

JS的this指向

正常函数的this指向

1.全局调用 函数名( ) 指向 window

2.对象调用 对象.函数名( ) 谁调用指向谁 (.前面是谁就指向谁)

3.自执行的函数 指向window

4.事件处理函数 指向事件源

5.定时器处理函数 指向事件源

6.函数定义了未调用的时候指向不确定

强行改变this指向的方法

call( )

语法:

函数名.call(你要改变的函数的 this 指向, 第二个参数开始,依次是给函数传递的参数)

会直接把函数给调用

第一个参数如果不写或者写一个 null,表示 window

语法: 函数名.call(你要改变的函数的 this 指向, 第二个参数开始,依次是给函数传递的参数) 会直接把函数给调用 第一个参数如果不写或者写一个 null,表示 window

let a = 10; function fn(b) { console.log(this); console.log(b); } fn.call(a,"gg"); //Number {10} 直接调用

apply()

语法: 函数名.apply(你要改变的函数的 this 指向,第二个参数是一个数组(只能有俩个参数) 数组里面每一项依次是给函数传递参数) 会直接把函数给调用

let a = 10;

function fn(b,c) {

console.log(this);

console.log(b);

console.log(c);

}

fn.apply(a,["bb","cc"]); //Number {10} 直接调用

call ( ) 和 apply ( ) 的方法实际上功能是一样的,只是传入的参数列表形式不同。

bind()

语法:

函数名.bind(你要改变的函数的 this 指向)

不会立即执行函数

返回值: 就是一个函数(只不过是一个被改变好了 this 指向的函数)

他对函数的参数传递有两个方式

1. 调用返回的函数的时候传递

2. 直接从第二个参数开始依次传递

let a = 10;

function fn(b,c) {

console.log(this);

console.log(b);

console.log(c);

}

var fn1=fn.bind(a,"bb","cc"); //返回的是改好指向的函数 并没有调用

fn(); // window 原来函数的指向是不会改变的

fn1(); //Number {10}

“怎么改变JS中的this指向”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


标题名称:怎么改变JS中的this指向-创新互联
标题来源:http://cdxtjz.cn/article/deodgh.html

其他资讯