zoukankan      html  css  js  c++  java
  • 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。

    简约不简单,代码追求极致
  • 相关阅读:
    正则表达式学习(转自csdn过客)
    javascript学习笔记(二)--继承
    sql 中print 输出变量值
    禅语摘录
    dTree的分析和二次开发,ajax加载dtree节点(下)(转)
    UpdatePanel的各种情况
    Cocos2dx制作帧动画
    Cocos2dx中文显示乱码
    Struts2 过滤器与拦截器
    创业不是纸上谈兵,把你的商业计划扔进垃圾桶吧
  • 原文地址:https://www.cnblogs.com/bitkuang/p/9923666.html
Copyright © 2011-2022 走看看