资讯专栏INFORMATION COLUMN

两个demo搞懂apply()是怎么改变函数的调用对象的

Leo_chen / 3076人阅读

摘要:是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。输出的参数为空时,默认调用全局对象。因此,这时的运行结果为,证明指的是全局对象。

apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。 Demo1:
    var x = 0;

  function test(){

    console.log(this);

  }

  var o={};

  o.x = 1;

  o.m = test;

  o.m.apply(); 
  
    输出①:Window {external: Object, chrome: Object, document: document, configData: Object, x: 0…}
  

apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为①,证明this指的是全局对象。

Demo2:
    
    var x = 0;

  function test(){

    console.log(this);

  }

  var o={};

  o.x = 1;

  o.m = test;

  o.m.apply(o); 
  
   输出②:Object {x: 1}

如果把最后一行代码修改为o.m.apply(o);运行结果就变成了②,证明了这时this代表的是对象o。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94171.html

相关文章

  • 你还没搞懂this?

    摘要:一前言关键字是中最复杂的机制之一。对于那些没有投入时间学习机制的开发者来说,的指向一直是一件非常令人困惑的事。随着函数使用场合的不同,的值会发生变化。还可以传值,在严格模式下和非严格模式下,得到值不一样。 一、前言 this关键字是JavaScript中最复杂的机制之一。它是一个很特别的关键字,被自动定义在所有函数的作用域中。对于那些没有投入时间学习this机制的JavaScript开...

    dance 评论0 收藏0
  • 你还没搞懂this?

    摘要:一前言关键字是中最复杂的机制之一。对于那些没有投入时间学习机制的开发者来说,的指向一直是一件非常令人困惑的事。随着函数使用场合的不同,的值会发生变化。还可以传值,在严格模式下和非严格模式下,得到值不一样。 一、前言 this关键字是JavaScript中最复杂的机制之一。它是一个很特别的关键字,被自动定义在所有函数的作用域中。对于那些没有投入时间学习this机制的JavaScript开...

    linkin 评论0 收藏0
  • 彻底搞懂 JS 中 this 机制

    摘要:的四种绑定规则的种绑定规则分别是默认绑定隐式绑定显示绑定绑定。绑定中的操作符,和其他语言中如的机制是不一样的。规则例外在显示绑定中,对于和的绑定将不会生效。它也是作为机制的一种替换,解决之前绑定过程各种规则带来的复杂性。 彻底搞懂 JS 中 this 机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.com/jasonGeng88/blog 目录 t...

    李世赞 评论0 收藏0
  • 彻底搞懂JavaScript中继承

    摘要:这正是我们想要的太棒了毫不意外的,这种继承的方式被称为构造函数继承,在中是一种关键的实现的继承方法,相信你已经很好的掌握了。 你应该知道,JavaScript是一门基于原型链的语言,而我们今天的主题 -- 继承就和原型链这一概念息息相关。甚至可以说,所谓的原型链就是一条继承链。有些困惑了吗?接着看下去吧。 一、构造函数,原型属性与实例对象 要搞清楚如何在JavaScript中实现继承,...

    _ivan 评论0 收藏0

发表评论

0条评论

Leo_chen

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<