这段代码中'cb => cb(snapshot)'的用途是什么?

时间:2018-12-14 12:26:05

标签: javascript

'cb => cb(snapshot)'的用途是什么?

    if (this._snapshotCallbacks.length > 0) {
            const snapshot = gl.canvas.toDataURL();
            this._snapshotCallbacks.forEach(cb => cb(snapshot));
            this._snapshotCallbacks = [];
    }

    requestSnapshot (callback) {
            this._snapshotCallbacks.push(callback);
    }

2 个答案:

答案 0 :(得分:0)

this._snapshotCallbacks.forEach(cb => cb(snapshot));

意味着有一组回调,这里的代码一个接一个地调用它们。

forEach是数组原型上存在的一个函数,它将函数作为参数并为集合中的每个元素调用此函数。调用该函数时,该元素作为es6速记函数定义的唯一参数传递给forEach接受的函数cb => cb(snapshot)

因此在您的示例中,cb是一个回调,然后使用snapshot进行调用。

基本上,这与forloop中的想法相同

var function1 = (msg) => { alert(msg);}
var function2 = (msg) => { alert(msg.toUpperCase());}

var functions = [function1, function2];
for(var i = 0; i < functions.length; i++){
  var fnToApply = functions[i];
  fnToApply("hello world");
}

,其中一个函数数组在循环中被调用,并且每个函数都经过预先设计,以了解其作为参数的作用

答案 1 :(得分:0)

this._snapshotCallbacks.forEach(cb => cb(snapshot));

可以改写为

this._snapshotCallbacks.forEach(function (callback) {
   callback(snapshot)
});

我认为没有箭头功能的时间很清楚吗?