• javascript中使用this关键字的大总结


    a.函数创建时产生一个this.

    function box(){alert(this)};//指向window

    b.(谁调用指向谁)当有事件绑定,并执行了事件处理程序时,谁绑定的事件,事件处理程序中的this指向谁。

    btn.onclick = function(){alert(this)};//绑定了事件,this事件的绑定者。

    c.回调函数中的this指向window

    setTimeout(function(){alert(this)});//任何地方使用定时器,里面的this都指向window

    d.匿名函数可以使用bind()改变this的指向call()和apply()可以改变函数中的this指向

    setTimeout(function(){alert(this)}.bind(btn));//使用bind()方法可以改变匿名函数this指向。

    e.箭头函数本身没有this,它的this是继承父级而来。

    btn.onclick = () => {alert(this)};//箭头函数的this指向父级执行环境,这里为window

    f.箭头函数不能使用call()、apply() 和 bind()来改变this指向

    setTimeout(()=>{alert(this)}.bind(this));//箭头函数无法用call()、apply() 和 bind()来改变this指向

    g.严格模式下,全局函数的this是undefined;

    “use strict”;

    function box(){alert(this)};//严格模式下,this为undefined;

    h:面向对象下的this

    使用new 关键字创建一个实例对象,构造函数中的this指向了该实例对象,同时实例对象的this指向构造函数的原型对象。

    function Box(name){

    this.name = name;

    }

    Box.prototype.run = function(){this};

    new Box(“tom”).run();//this指向Box.prototype。

    简约不简单,代码追求极致
  • 相关阅读:
    idea插件-RestfulToolkit
    java 调试技巧
    js foreach 不能中断的现象及理解
    SpringBoot 内嵌Tomcat的默认线程配置
    SpringMVC中从doDispatch如何一步步调用到controller的方法
    干掉hao123的第n+1种方法
    查找——二叉排序树(代码超详细注释)
    为什么单螺旋桨飞机会左偏?
    【转】Python 魔法方法大全
    通俗的讲解Python中的__new__()方法
  • 原文地址:https://www.cnblogs.com/bitkuang/p/9923666.html
Copyright © 2020-2023  润新知