javascript之函数作用域

function中的魔鬼this,我们来说说。

  function demo(){

    conlose.log(this);

  }

当我们调用demo()的时候,这里面的this指的是window这个对象。[如果是严格模式下this是undefined]

有些时候对象a有某个方法[比如是say],而对象b没有这个方法,但是我就想借用一下[不要在b上添加这个方法]

  var a = {

    name:'a',

    say:function(){

      conlose.log(this.name);

    }

  };

  var b = {

    name:'a'

  }

  我们可以这样使用 a.say.bind(b)();或a.say.call(b);或a.say.apply(b);

  这里的this就是作用域,bing只是改变作用域,参数传递跟原方法一样。call和apply调用方法时,第一个参数$this是作用域this,

  call传参数是 $this,a1,a2,a3....

  apply传参数是 $this,[a1,a2,a3....]

  

  

原文地址:https://www.cnblogs.com/ehuanrum/p/6626516.html