次の 2 つが与えられます。
シナリオ 1
function inner() {
// a bunch of code that does stuff
}
function outer() {
inner();
}
for(var i = 0; i < 10000; i++) {
outer();
}
シナリオ 2
function outer() {
function inner() {
// a bunch of code that does stuff
}
inner();
}
for(var i = 0; i < 10000; i++) {
outer();
}
どちらの場合も動作は同じです。間違いありません。しかし、フードの下の違いは何ですか? シナリオ 2 でインタプリタが実行している余分な作業があれば、どれくらいですか? メモリに影響がありますか。あるいは、たとえば の胴体inner()
が長くなると、パフォーマンスへの影響が大きくなりますか?
私の質問は実際的な問題に関するものではないので、「なぜそれをしたいのですか」とわざわざ尋ねないでください。JS 関数がどのように解析され、表現されるかをより深く理解しようとしています。ありがとう!