,,js中this的指向问题归纳总结

,,js中this的指向问题归纳总结

最近发现很多朋友在学习JS的时候对这个指向问题有很大的误解或者只是大概的了解,但是一旦遇到复杂的情况,就会因为这个指向问题产生各种bug。所以本文主要介绍js中关于this的指向问题的相关资料,有需要的朋友可以参考一下。

前言

Js这指出了一个老生常谈的问题。下面再给大家介绍一篇文章。可以看一看,有更深的了解。下面不多说了。我们来看看详细的介绍。

this

This: context,指向会根据执行环境的变化而变化。

1.仅这一点就指向了窗口对象。

警戒(这个);//此窗口

2.这在全局函数中

函数演示(){

警戒(这个);//此窗口

}

demo();

在严格模式下,这是未定义的。

函数演示(){

使用严格的';

警戒(这个);//未定义

}

demo();

3.调用函数时,在前面加上new关键字。

所谓构造函数就是通过这个函数生成一个新的对象。这时,这个指向这个对象。

函数演示(){

//alert(这个);//这个对象

this.testStr='这是一个测试';

}

设a=new demo();

alert(a . teststr);//'这是一个测试'

4.以调用和应用的方式调用函数

函数演示(){

警戒(这个);

}

demo . call(' ABC ');//abc

demo.call(空);//此窗口

demo.call(未定义);//此窗口

5.这个计时器指向窗口。

setTimeout(function() {

警戒(这个);//this-window,严格模式也指向window。

},500)

6.元素绑定事件。在事件被触发后,这个在被执行的函数中指向当前元素。

window.onload=function() {

let $ BTN=document . getelementbyid(' BTN ');

$btn.onclick=function(){

警戒(这个);//this-当前触发器

}

}

7.当调用函数时,如果bind被绑定,那么函数中的this指向bind中绑定的元素。

window.onload=function() {

let $ BTN=document . getelementbyid(' BTN ');

$btn.addEventListener('click ',function() {

警戒(这个);//窗口

}.绑定(窗口))

}

8.对象中的方法,哪个对象调用了方法,那么方法中的这个就指向对象。

let name='finget '

让obj={

名称:' FinGet ',

getName: function() {

alert(this . name);

}

}

obj . getname();//FinGet

-分界线-分界线-分界线

设fn=obj.getName

fn();//fin获取此窗口

腾讯笔试题

var x=20

var a={

x: 15,

fn:函数(){

var x=30

返回函数(){

返回this.x

}

}

}

console . log(a . fn());

console . log((a . fn())()));

console . log(a . fn()());

console . log(a . fn()()==(a . fn())()));

console.log(a.fn()。叫(这个));

console.log(a.fn()。调用(a));

答案

1 . console . log(a . fn());

对象调用该方法,并返回一个方法。

# function() {return this.x}

2 . console . log((a . fn())());

A.fn()返回一个函数,而() ()这是一个自执行表达式。这个窗户

# 20

3 . console . log(a . fn()());

A.fn()相当于全局定义一个函数,然后自己调用执行。这个窗户

# 20

4 . console . log(a . fn()()==(a . fn())());

#真的

5.console.log(a.fn()。叫(这个));

这段代码在全局环境中执行,这个窗口

# 20

6.console.log(a.fn()。调用(a));

这是

# 15

总结

这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关于js的面试题,前段js面试题
  • 关于js的面试题,前段js面试题,送你43道JS面试题(收藏)
  • 关于js中的全等和不全等,等于和不等于问题的关系,
  • 关于js中的全等和不全等,等于和不等于问题的关系,,关于JS中的全等和不全等、等于和不等于问题
  • 全面了解js中的匿名函数有哪些,全面了解js中的匿名函数是什么
  • 全面了解js中的匿名函数有哪些,全面了解js中的匿名函数是什么,全面了解JS中的匿名函数
  • 使用js实现简单的图片切换功能的方法,使用js实现简单的图片切换功能命令
  • 使用js实现简单的图片切换功能的方法,使用js实现简单的图片切换功能命令,使用JS实现简单的图片切换功能
  • 使用js实现数据格式化命令,使用js实现数据格式化的方法
  • 使用js实现数据格式化命令,使用js实现数据格式化的方法,使用js实现数据格式化
  • 使用js代码实现点击按钮下载文件的方法,使用js代码实现点击按钮下载文件并安装
  • 使用js代码实现点击按钮下载文件的方法,使用js代码实现点击按钮下载文件并安装,使用JS代码实现点击按钮下载文件
  • 代码错误未结束的字符串常量,代码错误未结束的字符串常量,js 未结束的字符串常量错误解决方法
  • 什么叫jsp,jsp的概念是什么
  • 什么叫jsp,JSP是指
  • 留言与评论(共有 条评论)
       
    验证码: