首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏bug收集

    this 指向4 — 事件处理函数中的 this

    本文继续讨论 this 指向 问题,今天讨论: 事件处理函数中的 this 文末尾有关于this的面试题,可直接查看 0 1 事件处理函数中的 this 示例1: <button id="btnTest this); console.log(this.a ,this.b); } window.Plus = Plus; })(document) new Plus(3,<em>4</em>) ; 结果为: 总结 : 事件函数处理内部的this, 总是<em>指向</em>被绑定的DOM元素 0 2 改变函数内部this<em>指向</em> 问题:如何让 handlerBtnClick 内this<em>指向</em>类的实例 方法一:

    1.3K20编辑于 2022-07-22
  • 来自专栏XC's Blog 日常笔记

    This指向与改变This指向

    This指向与改变This指向 This 的指向 在 ES5 中,其实 this 的指向,始终坚持一个原理:this 永远指向最后调用它的那个对象。 所以fn方法中的this指向a 例 4: var name = "windowsName"; var a = { // name: "Cherry", fn : function () 所以 this 指向的也就是 window。 this 的指向并不是在创建的时候就可以确定的,在 es5 中,永远是this 永远指向最后调用它的那个对象。 改变 this 的指向 改变 this 的指向我总结有以下几种方法: 使用 ES6 的箭头函数 在函数内部使用 _this = this 使用 apply、call、bind new 实例化一个对象 例 我们将 this(指向变量 a) 赋值给一个变量 _this,这样,在 func2 中我们使用 _this 就是指向对象 a 了。

    1.8K20编辑于 2023-02-27
  • 来自专栏前端小歌谣

    this指向

    前言 我是歌谣 最好的种树是十年前 其次是现在 今天继续给大家带来的是this指向的讲解 环境配置 npm init -y yarn add vite -D 修改page.json配置端口

    55330编辑于 2023-10-24
  • 来自专栏全栈自学笔记

    this指向

    1.this 1.1函数内部的this指向 这些 this 的指向,是当我们调用函数的时候确定的。调用方式的不同决定了this 的指向不同 一般指向我们的调用者. ? 1. thisArg:在fun函数运行时指定的 this 值 2.argsArray:传递的值,必须包含在数组里面  3.返回值就是函数的返回值,因为它就是调用函数  4.因此 apply /4.我们有一个按钮,当我们点击了之后,就禁用这个按钮,3秒钟之后开启这个按钮 var btn = document.querySelector('button'); btn.addEventListener , 并且改变函数内部this指向. 比如借助于数学对象实现数组最大值最小值 bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向.

    1.6K10发布于 2020-10-27
  • 来自专栏前端学习文档

    this 指向

    source=cloudtencent this 指向分为两种情况,一种是普通函数中使用的 this,另外一种是箭头函数中的 this。 普通函数 this 指向调用者。 场景 4 class Person { constructor() {} sayHi() { console.log(this) } } const xiaoming 箭头函数本身不存在 this,所以它的 this 指向上一层作用域所在的对象。 sayHi 所在的对象 person,所以无论是谁调用了 fn ,this 始终指向 person。 改变 this 指向 通过 call() apply() bind() 可以改变 this 指向

    1.3K00编辑于 2023-05-24
  • 来自专栏h5学习笔记

    this指向

    1.函数内部的this指向 这些 this 的指向,是当我们调用函数的时候确定的。调用方式的不同决定了this 的指向不同 一般指向我们的调用者. ? 2.改变函数内部 this 指向 JavaScript为我们专门提供了一些函数方法来帮我们更优雅的处理函数内部 this的指向问题,常用的有bind()、call()、apply()三种方法。 简单理解为调用函数的方式,但是它可以改变函数的 this 指向。 , 并且改变函数内部this指向. 比如借助于数学对象实现数组最大值最小值 bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向.

    1.4K10发布于 2020-10-26
  • 来自专栏持续学习

    this 指向(一)

    求执行结果 // 1. x is object; // 2. object.f1(options); // 3. options.f2(); ==> options.f2.call(options) // 4. // 1. x is object; // 2. object.f1(options); // 3. x.f2.call(this) ==> options.f2.call(object) // 4. 有人说「箭头函数里面的 this 指向箭头函数外面的 this」,这很傻,因为箭头函数内外 this 就是同一个东西,并不存在什么指向指向

    1.4K10编辑于 2022-01-18
  • 来自专栏用户7737280的专栏

    对象this指向箭头函数的this指向定义

    可以看出普通函数this指向了本身对象,而箭头函数this往外层找指向了window,因为window没有name字段所以没有输出。 箭头函数使this从“动态”变成“静态”,实质是内部没有this指向,继承上级对象this指向箭头函数的this指向定义时外部作用域内的this指向,普通函数的this指向调用时根据上下文取确认.resp4 3.无法作为构造函数 箭头函数作为匿名函数,没有prototype,没有自己的this指向,因此不能使用new构造函数非对称加密的密钥不是一个,而是一对。

    1.8K40编辑于 2021-11-29
  • 来自专栏前端小歌谣

    关于this指向

    function test(b,c){ console.log(this.a,b,c) } test() test.call(obj) test.apply(obj) test.call(obj,3,4) test.apply(obj,[3,4]) var test1=test.bind(obj,3,4) test1(); var test2=test.bind(obj2,3,4) test2( t2() } t1() } obj2.test() 运行结果 案例 var obj={ a:1, b:2, c:{ d:4, console.log(this.a,this.b) console.log(this) } window.Plus=Plus })(document) new Plus(3,4)

    71620编辑于 2023-10-18
  • 来自专栏coding个人笔记

    this的指向

    This的指向问题一直是JavaScript的一大核心,很多人都是觉得了解了,但是又模模糊糊。简单概括就是,this的指向永远是指向调用这个this的对象。下面介绍几个本人理解的this指向问题。 var a = 10; console.log(this.a); alert(this.a); 这是最简单的this指向问题,console.log()和alert()是两个函数,是window的函数 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除了第一个参数外,剩下的都是方法的参数,

    1.3K20发布于 2020-04-24
  • 来自专栏开源部署

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

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

    4.5K30编辑于 2022-08-13
  • 来自专栏持续学习

    this 指向(二)

    如果要想把this的值从一个环境传到另一个,就要用call/apply/bind方法

    1.2K10编辑于 2022-01-19
  • 来自专栏人生代码

    再说 this 指向问题

    要知道 this 指向问题,需要知道函数调用栈,函数调用的位置。 baz 的调用位置 绑定规则 独立函数调用 function foo() { console.log(this.a) } var a = 10 foo() // 10 在本例子中 this 默认指向了 隐式绑定 非严格模式下,函数调用 this 指向调用者。 var a = "oops, global"; // a 是全局对象的属性 bar(); // "oops, global" 调用的位置是在全局对象上的,所以 this 指向了 window 一种更微妙 , foo: foo }; var a = "oops, global"; // a 是全局对象的属性 doFoo( obj.foo ); // "oops, global" 实际上 this 也是指向

    1.1K10发布于 2021-05-08
  • 来自专栏高端IT

    你真的懂this指向

    先搞清楚一点,如果this在函数里面,那么它指向的是“函数执行后”的上一级调用对象。 var a="this is a"; function main() { console.log(this.a)//这里this指向window. } main()//这里相当于 o,因为你调用这个say是通过o.say()执行的,那自然指向就是对象o,这里再次强调一点,this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁调用的就指向谁,一定要搞清楚这个。 :“maomin”,say1:function(){console.log(this.name);//maomin}}window.o.say1();// 上面几行代码和之前的代码几乎相似,为什么没有指向 window,这就回到了我刚开始说的,this如果在函数内,那么它指向的是该函数执行后的上一级调用对象。

    79920编辑于 2022-07-25
  • 来自专栏程序技术知识

    js中this指向问题

    函数中this指向对于一些开发者来说一直是一个比较头疼的问题,this在js中比较灵活,不同的情况指向不同,小shy总结出了函数调用的this指向的一些情况,供大家参考。 1. 默认绑定 function fn() { console.log(this); } fn(); 结果:this指向window对象 函数在被调用的时候,this会默认指向全局对象window obj对象,this.name 即 obj.name 调用对象的方法时会出现隐式绑定,fn是在obj对象里的,obj调用fn,this就会指向obj对象。 ,所以fn函数调用this都指向了obj2对象,所以得出结果为小红。 (如果不太明白call()、apply() 和 bind(),可以看小shy之前的博客《js call()、apply()、bind()用法和区别》) 4.

    3.1K60编辑于 2022-05-11
  • 来自专栏前端学习笔记

    函数内部的this指向

    2.this 2.1函数内部的this指向 这些 this 的指向,是当我们调用函数的时候确定的。调用方式的不同决定了this 的指向不同 一般指向我们的调用者. ? 2.2改变函数内部 this 指向 2.2.1 call方法 call()方法调用一个对象。简单理解为调用函数的方式,但是它可以改变函数的 this 指向 应用场景: 经常做继承. 简单理解为调用函数的方式,但是它可以改变函数的 this 指向。 2.2.4 call、apply、bind三者的异同 共同点 : 都可以改变this指向 不同点: call 和 apply 会调用函数, 并且改变函数内部this指向. 比如借助于数学对象实现数组最大值最小值 bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向.

    2.4K30发布于 2020-10-26
  • 来自专栏软件工程

    箭头函数和this指向

    箭头函数基本使用 // 箭头函数: 也是一种定义函数的方式 // 1.定义函数的方式: function const aaa = function () { } // 2.对象字面量中定义函数 const obj = { bbb() { } } // 3.ES6中的箭头函数 // const ccc = (参数列表) => { // // } const ccc = () => { } 带返回值的箭头函数 // 1.参数问题: /

    1.7K10编辑于 2021-12-23
  • 来自专栏AlbertYang的编程之路

    JavaScript进阶教程(4)-函数内this指向解惑call(),apply(),bind()的区别

    4 call、apply、bind 了解了函数 this 的指向之后,我们知道在一些情况下我们为了使用某种特定环境的 this 引用,需要采用一些特殊手段来处理,例如我们经常在定时器外部备份 this 4.1.2 apply和call可以改变this的指向 // 通过apply和call改变this的指向 function Person(name, sex) { this.name = name 对象的,但是传入obj之后,f1的this此时就是obj对象 var r3 = f1.apply(obj, [1, 2]); //此时f1中的this是obj console.log(r3); var r4 = f1.call(obj, 1, 2); //此时f1中的this是obj console.log(r4); ? apply,call,bind方法是用来改变this指向的。apply和call是调用方法的时候改变this指向,bind方法是复制一个新的函数,改变this的指向

    85042发布于 2020-09-08
  • 来自专栏JavaScript高阶应用

    JavaScript this的指向

    JavaScript 中this取什么值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了,因为this的取值是执行上下文环境的一部分,每次调用函数,都会产生一个新的执行上下文环境 this作为普通函数,指向 window function fn1() { console.log(this) } fn1() // window 使用call() apply() bind(),指向第一个参数 fn1.call ({x: 100}) // 指向第一个参数 {x: 100} 作为对象方法被调用,指向调用该方法的对象 const niangao = { name: '年糕', sayHi() { / // setTimeout是作为普通函数去执行,而不是作为niangao.wait()去执行 console.log(this) }) } } 在class方法中被调用,指向实例对象 } eat() { console.log(this) } } const niangao = new Food('年糕') niangao.eat() // Food{} 箭头函数,指向上级作用域的

    1K31编辑于 2024-03-16
  • 来自专栏bug收集

    this 指向3 — 函数中的this

    本文继续讨论 this 指向 问题,今天讨论: 函数中的this 0 1 箭头函数 箭头函数忽略任何形式的this指向改变. 当在严格模式下,test打印还是为window, test2 则打印undefined 箭头函数中的this ,不是谁调用就指向谁 示例2: obj.test=()=>{ console.log this); } t2(); } t1(); } obj.test(); 结果为:obj (t1, t2 都为箭头函数) 示例4: ); } t2(); } t1(); } obj.test(); 结果为:window 总结:箭头函数 this 作用域, 指向外层非箭头函数作用域的 总结: call、apply、bind 三个方法都可以改变函数中this 的指向 call、apply :立即执行 bind 返回一个新函数 var obj={ name:'sunshine',

    58110编辑于 2022-07-22
领券