しかし、Rubyでブロックを生成する方法と同様に、特定のスコープで実行される任意のコードをJavaScriptで渡す機能があります。JavaScriptのRubyスタイルブロック?
は、例えばこれを持っ:
function injectHook() {
return function(block) {
block();
}
}
(function() {
var a = 1;
self.inject = injectHook();
})();
inject(function() {
a++;
});
inject(function() {
console.log(a);
});
injectHook
が異なるスコープで定義され、a
にアクセスすることができなくなりますので、上記の試みは動作しません。
ここでの主な使用例は、複雑なコードのライブデバッグです。
編集:I started a GitHub project around this question
この質問は完全ではありません。あなたは確かにそれらのステートメントを "言う"ことができます。あなたが "言う"ときに何を期待するのですか?そしてそのコードの中で "自己"は何を意味しますか?これはJavaScriptのコンセプトではありません。あなたは「これ」を意味しましたか? – Pointy
私はもう少し明確にしようとしました。うまくいけば分かりやすいでしょう。 – kristopolous
大きな質問のために+1: –