私はes6でこれをブロックスコープにする方法を知っています。ES6のブロックスコープはバベルでコンパイルされています
'use strict';
{
let account = [1678922, 300450];
let compute = (credit, debit) => {
return credit - debit;
}
console.log(compute(...account));
}
私がコンパイルされたバージョンでグローバル変数を削除したいES5 [これは私が期待するものである]
(function(){
var account = [1678922, 300450];
var compute = function compute(credit, debit) {
return credit - debit;
};
console.log(compute.apply(undefined, account));
})();
console.log(user1);
'use strict';
{
var account = [1678922, 300450];
var compute = function compute(credit, debit) {
return credit - debit;
};
console.log(compute.apply(undefined, account));
}
をコンパイルBABEL。
質問:
- 任意のプラグインなしでそれを行うにはどのような方法がありますか?
- いいえ、npmを使用しているプラグインはありますか?
PS:古代のブラウザをサポートする必要があります。少なくともIE9。
ご協力いただければ幸いです。ありがとう!
'use strict'を追加します。あなたの上のスクリプトですか? – Mox
あなたはこれにいくつかの文脈を与えることができますか?私はこれについて多くの方法を考えることができます:あなたが使用している関数にスコープし、それを格納するためにオブジェクトリテラルを使用します。しかし、それは本当にあなたがそれを必要とする理由、 – thesublimeobject
@ thesublimeobject、私は与えられた文脈がはっきりしていると信じています。ブロックスコープが意図したとおりに動作しない理由 – Mox