JS(javascript)中this的几种用法实例详解

本文主要介绍了javascript(以下简称js)中 this 用法,结合具体实例详细分析一下js中 this 的含义及使用方法,需要的朋友可以参考下。

this 是 JavaScript 语言的一个关键字,this 的指向其实是非常灵活的,它会根据调用function的对象不同,导致了 this 的指向不同。当在全局作用域下调用函数时,this 指向window。总的来说,this 就是函数运行时所在的环境对象。有四种情况,下面详细讨论 this 的用法。

用法1:函数的调用

在一般函数方法中使用 this 指代全局对象,这是函数的最通常用法,属于全局性调用,因此 this 就代表全局对象。

function test(){
    this.name = zs;
    alert(this.name);
  }
test(); // zs

用法2:对象方法调用

作为对象方法调用,函数还可以作为某个对象的方法调用,这时的 this 就指这个上级对象。

function test(){
  alert(this.name);
}
var person = {};
person.name = lisi;
person.nickname = test;
person.nickname (); // lisi

用法3:构造函数调用

作为构造函数调用,this 指代new 出的对象,在js中自己创建构造函数时可以利用 this 来指向新创建的对象上。这样就可以避免函数中的 this 指向全局了。例如:

function test(){
  this.name = wangwu;
}

var nickname = new test();
alert(nickname.name); // wangwu
// 运行结果为wangwu

// 为了表明这时的this不是全局对象,下面给代码做一点改变,可以看看效果
var name = maliu;
function test() {
    this.name = zhaoqi;
}

var nickname = new test();
alert(name); // 这时结果为maliu

用法4:apply或call调用

apply()是函数的一个方法,作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,因此,这时 this 指的就是这第一个参数。

var name = zhangsan;
function test() {
    alert(this.name);
}

var person = {};
person.name = lisi;
person.nickname = test;

//apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为zhangsna,证明this指的是全局对象。
person.nickname.apply(); // 结果为zhangsan

//如果把最后一行代码修改为
person.nickname.apply(person); // 此时结果为lisi

到这里本文就结束了,希望对大家有帮助;

 

想要查看JS的简单介绍,可以点击查看

 

请看点击查询基本语法章节

请看点击查询基本对象章节

请看点击查询BOM对象章节

请看点击查询DOM对象章节

 

如果感觉写的好,确实帮助了你,那就麻烦帮忙点个赞,多谢!

如果需要转载,请注明出处,谢谢!本文为博主原创文章,博客地址:https://blog.csdn.net/weixin_44299027

 

 

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaScript有多种方法可以遍历数组,其常用的有map、forEach和filter。 1. map方法: map方法会对数组的每个元素调用一个回调函数,并返回一个新的数组,新数组的元素是原始数组每个元素经过回调函数处理后的结果。例如,我们有一个数组[1, 2, 3],我们可以使用map方法将每个元素乘以2并返回一个新的数组[2, 4, 6]。map方法不会改变原始数组。 2. forEach方法: forEach方法会对数组的每个元素调用一个回调函数,但它不会返回任何内容。通常,forEach方法用于执行一些操作而不需要返回结果,例如打印数组的每个元素。与map方法不同,forEach方法无法返回修改后的数组。 3. filter方法: filter方法会对数组的每个元素调用一个回调函数,并返回一个新的数组,新数组的元素是回调函数返回值为true的元素。例如,我们有一个数组[1, 2, 3, 4, 5],我们可以使用filter方法筛选出所有大于2的元素并返回一个新的数组[3, 4, 5]。与map方法类似,filter方法也不会改变原始数组。 这三种方法在遍历数组时具有不同的用途。map方法可以用于对数组的每个元素进行转换或操作,并返回一个新的数组。forEach方法用于执行一些操作而不关心返回值。filter方法用于根据指定的条件筛选出符合条件的元素,并返回一个新的数组。根据具体情况,我们可以选择合适的方法来遍历数组。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No8g攻城狮

向每一个努力改变现状的你致敬!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值