一尘不染

为什么要使用javascript函数包装器(添加在coffeescript中)“。call(this)”

javascript

当我使用最新(1.0)版本的coffee-script时,一个简单的javascript输出看起来像这样(默认):

(function() {
  var a;
  a = 1;
}).call(this);

什么 .CALL(本) 做,哪些是添加它的原因是什么?


阅读 355

收藏
2020-05-01

共1个答案

一尘不染

它正在创建一个函数,然后使用父函数/对象范围进行调用。

.call和.apply是调用函数的不同方法。您基本上创建了一个函数,除了在自己的范围内设置a = 1之外,什么也不做。

在javascript中,您需要意识到每个函数都是一个对象,并且this是指当前对象/函数的内容。从函数内部使用.call(this)替代this,并将其替换为调用上下文中的替代。

2020-05-01