这是一种解决this
转义内部问题的方法。没有这个额外的参考代码将看起来像这样:
$.get(path, function(contents) { // or some other function with callback
//Wrong! `this` might no longer point to your object
this.done(JST[path] = tmpl);
})
不幸的是! this
里面的响应回调与其外部的this
不一样。实际上,它可以是任何东西,具体取决于$.get
(调用回调函数)决定它。大部分的人使用相同的目的命名that
额外的参考:
var that = this;
// ...
$.get(path, function(contents) { // or some other function with callback
// ...
that.async(JST[path] = tmpl);
})
这种模式也似乎合理性和可读性。
哦,如果你是好奇这句法:
done(JST[path] = tmpl)
这是作为一个表达式赋值。分配的值是右手侧,所以该代码相当于:
JST[path] = tmpl;
done(tmpl);
这不是内置功能。它必须由一些图书馆/框架提供。 – user123444555621