私はnodeschool.ioからjavascriptのプラクティスをやっている、と私はこのコードを与えられたが:Javascriptingは、スコープチェーンの練習
var a = 1, b = 2, c = 3;
(function firstFunction(){
\t var b = 5, c = 6;
\t (function secondFunction(){
\t \t var b = 8;
\t \t (function thirdFunction(){
\t \t \t var a = 7, c = 9;
\t \t \t (function fourthFunction(){
\t \t \t \t var a = 1, c = 8;
\t \t \t })();
\t \t })();
\t })();
})();
私は私がしようとし、この内部で何かをアクセスすることはできませんよそれこのような:
var a = 1, b = 2, c = 3;
var start = (function firstFunction(){
\t var b = 5, c = 6;
\t var secondFunction = (function secondFunction(){
\t \t var b = 8;
\t \t (function thirdFunction(){
\t \t \t var a = 7, c = 9;
\t \t \t (function fourthFunction(){
\t \t \t \t var a = 1, c = 8;
\t \t \t })();
\t \t })();
\t \t return {
\t \t \t secondFunction: secondFunction,
\t \t \t printB: function() {
\t \t \t \t return b;
\t \t \t }
\t \t }
\t })();
\t return {
\t \t printC: function() {
\t \t \t return c;
\t \t }
\t }
})();
console.log("a: " + a + ", b: " + start.secondFunction.printB() + ", c: " + start.printC());
私のアプローチが正しいかどうかはわかりませんが、私はこれを一日中続けました。これにどのようにアプローチして、secondFunction.printCに入るために私のコードが働いていないのですか?
何のためのアプローチですか?どのような問題を解決しようとしていますか? – Barmar
'secondFunction'は' start'から返されませんか? – guest271314
また、直ちに呼び出される関数をすべて変数に設定するのはなぜですか? – Damon