'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);
}
答案 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)
});
我认为没有箭头功能的时间很清楚吗?