首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

This指向改变This指向

This指向改变This指向 This 的指向 在 ES5 中,其实 this 的指向,始终坚持一个原理:this 永远指向最后调用它的那个对象。...改变 this 的指向 改变 this 的指向我总结有以下几种方法: 使用 ES6 的箭头函数 在函数内部使用 _this = this 使用 apply、call、bind new 实例化一个对象 例...使用 apply、call、bind 使用 apply、call、bind 函数也是可以改变 this 的指向的, 使用 apply 例 10: var a = { name : "Cherry...使用 call 改变 this 的指向 如果无返回值或者返回一个非对象值,则将 obj 返回作为新对象;如果返回值是一个新对象的话那么直接直接返回该对象。...所以我们可以看到,在 new 的过程中,我们是使用 call 改变了 this 的指向

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    执行函数中改变 this 的指向以及方法

    所以,还是改成 执行函数中改变 this 的指向以及方法。 改变 this 的指向的方法和执行 bind,apply,call 都是执行函数时,用来改变 this 的指向。...为什么需要改变这个 this 的指向 需要改变这个 this 的指向,是因为原来的 this 被污染了,需要重新再进行 this 指向,因为,this 指向的是被调用的父级作用域,而如果函数在另一个函数里面执行的时候...这个就需要把 这个 this 的指向改成指向 fighter 这个对象。以下是改变 this 指向的方法。...使用 call 改变 this 指向 call的第一个参数是 this 的指向,后面是一个传入参数的列表。...使用 apply 改变 this 指向 使用 apply 改变 this 指向和 call 改变指向大致上方法是一样的,唯一有不同的就是传参是以单个参数(数组)进行传递,如下图: const fighter

    1.1K61

    js中扩充函数作用域(改变this指向)

    结果分析说明 GetName函数是在全局环境中定义,所以直接调用函数this就指向了全局环境,所以输出Jack。...(注意函数不加后面()的时候,那时候就不是调用,那只是一个包含函数指针的变量) 由于函数执行环境变成了obj对象,所以this只想就指向了obj,所以自然就输出了“Tom”。...函数扩展this对象 es5提供了三个函数非继承的方法,可以直接改变this的指向,但是在书中说是扩充函数作用域,但是我认为改变this指向更贴切一点。...三个方法分别为:apply,call,bing,用法都比较简单,作用也都是改变函数的this指向,下面我就用代码来简单说明一下。...这三个方法功能都是相同,都是改变this指向,只是使用形式上有一点不同,大家可灵活运用。

    2.6K11

    cocosCreator中关于setTimeOut和setInterval改变this指向的问题

    在setTimeOut()或setInterval()这样的方法中,如果传入的函数包含this,那么,默认情况下,函数中的this会指向window对象。...这回导致这些代码中包含的this关键字会指向window对象。如下图: 下面那个this就是setInterval()中this指向。...解决方法: 将当前对象的this存为一个变量 定时器内部的函数来访问到这个变量,此时的this,就指向了当前对象 function broadInter(){ var that = this;...){ setInterval(function(){ console.log(this.msg); },1000) } 箭头函数 ES6中的箭头函数,this总是指向词法作用域...function broadInter(){ setInterval(()=>{ console.log(this.msg); },1000) } 如何准确判断this指向的是什么

    1K20

    JS改变this指向的三种方法 (转载非原创)

    转载来源: https://www.cnblogs.com/mochenxiya/p/16698139.html一、this指向点击打开视频讲解更加详细this随处可见,一般谁调用,this就指向谁。...,如果在箭头函数中有,则会向上一层函数中查找this,直到window二、改变this指向1、call() 方法call() 方法的第一个参数必须是指定的对象,然后方法的原参数,挨个放在后面。...console.log(a + b);}//使用call() 方法改变this指向,此时第一个参数是 字符串call,那么就会指向字符串callfun.call('call', 2, 3) /...console.log(a + b);}//使用apply() 方法改变this指向,此时第一个参数是 字符串apply,那么就会指向字符串applyfun.apply('apply', [2,...;}//使用bind() 方法改变this指向,此时第一个参数是 字符串bind,那么就会指向字符串bindlet c = fun.bind('bind', 2, 3);c(); // 返回新的方法,需要重新调用

    55200

    我攻克的技术难题:JS中改变this的指向:call()、apply()、bind()

    3种动态指定普通函数中this的指向的方法:call()、apply()、bind() 在之前的学习中,我发现在学习了很多JS方法后,却没有真正的应用起来或者是理解什么时候需要使用这些方法,导致自己很快就遗忘自己所学过的知识...age: 18 } function fn() { console.log(this) } const fun = fn.bind(obj) console.log(fun)应用场景只想改变...this指向,并且不想调用这个函数的比如改变定时器内部的this指向:如果有一个按钮,当我们点击了之后就禁用这个按钮,2秒钟之后又开启这个按钮 发送验证码 总结call()、apply()、bind()都可以改变函数内部的...this指向,但是call传递参数aru1,aru2...形式 apply传递参数arg形式bind区别于其他两种,不会调用函数我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

    30632

    this的指向

    This的指向问题一直是JavaScript的一大核心,很多人都是觉得了解了,但是又模模糊糊。简单概括就是,this的指向永远是指向调用这个this的对象。下面介绍几个本人理解的this指向问题。...var a = 10; window.console.log(this.a); window.alert(this.a); 所以调用函数的对象是window,this也就是指向window。...b: function () { console.log(this.a); } }; obj.b(); 可以看见,b方法是对象obj里面的方法,那么调用b方法的对象就是obj,这时的this指向就是指向...接下来就是改变this指向的两个方法,call和apply,两个都是改变this的指向,只是参数不同,两个方法的第一个参数都是想要改变this指向的对象,call除了第一个参数外,剩下的都是方法的参数,...var objChange = { a: 10000 } obj.b.apply(objChange); obj.b.call(objChange); Call和apply传入的第一个参数,就是this改变指向的对象

    91520

    域名隐藏指向和非隐藏指向有何不同

    我们在注册一些免费域名或者使用多个域名的时候,经常会遇到域名指向的问题。域名指向有隐藏性和非隐藏性两种类型。...隐藏指向和非隐藏指向都可以将与名指向到客户指定的已经可以访问的网站,但是这两种指向方式还是存在不一样的地方。 域名指向有什么用?...例如您已经注册了yiqixue.net ,但是并没有使用这个域名建站,只希望这个域名指向到已经可以正常使用的一个网站的子目录,就可以使用域名指向的功能来实现。 域名隐藏指向和非隐藏指向有何不同?...例如域名 www.yiqixue.net  要指向到已经可以访问的 http://www.hcm602.cn 使用域名隐藏操作的结果: 在IE地址栏输入: https://www.cmhello.com

    3K30
    领券