• 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。

    简约不简单,代码追求极致
  • 相关阅读:
    数学专业的数学与计算机专业的数学的比较(转)
    vim的复制粘贴小结(转)
    (转)会议期刊论文发表介绍(计算机科学领域)
    字符串最后一个单词的长度(华为在线训练)
    (转)初识suse——linux
    (转)C++中返回对象的情形及RVO
    mystring c++ 自己的string 封装
    std::string
    FTP 1.0
    conflicting types for xxxx错误 (转)
  • 原文地址:https://www.cnblogs.com/bitkuang/p/9923666.html
Copyright © 2020-2023  润新知