前段时间我正在寻找这个问题的答案,我必须说大多数的问题是"使用严格的#34;。但是我并不想使用严格的。前段时间我发现有可能在没有严格的情况下打破链条,这很简单:
function mySecretFunc(untrustedCallback, uberImportantArgument){
[null].map(function(){untrustedCallback()});
}
//async way:
function mySecretFunc(untrustedCallback, uberImportantArgument){
window.setTimeout(function(){function(){untrustedCallback()}},0);
}
注意:.dispatchEvent触发的事件不会破坏调用者链
note2:记住属性getter也可以侵入调用者链,这个方法也可以用来从数组中删除getter(array.map(function(a){return a})
)
我认为它可能有用。