2016-10-13 4 views
-2

私はこの関数内の車オブジェクトのプロパティにアクセスしたいですか?この関数内でオブジェクトにアクセスするにはどうすればよいですか?

 function initStage(){ 
     var cars = { 
     car: "ford", speed: 300 
     } } 
+3

アクセス不可能な場合を除き、機能の外にあるオブジェクトにアクセスすることはできません。 – adeneo

+1

オブジェクトを返すことができます。 – Li357

+0

関数*の中にもう一度待ってください*? '車。 '... – Li357

答えて

2

関数の外から、関数が定義した範囲外にアクセスすることはできません。

変数carsを関数の外に定義し、関数内で設定することができます。次に、関数が呼び出されると、その関数が設定した値にアクセスできます。

var cars; 

function initStage(){ 
    cars = { 
     car: "ford", 
     speed: 300 
    } 
} 
1

そのオブジェクトのスコープは、それが中で宣言された関数である。あなたが値を返すことができますしかし

function initStage(){ 
    var cars = { 
    car: "ford", speed: 300 
    } 
    return cars; 
} 

var initCars = initStage(); 

ur要件に応じて、コンストラクタにしてcarsオブジェクトをインスタンスのプロパティにすることもできます。

function initStage(){ 
    this.cars = { 
    car: "ford", speed: 300 
    } 
} 

new initStage().cars 
0

あなたが可能な解決策

function initStage(){ 
     var cars = { 
     car: "ford", speed: 300 
     } 
     console.log(cars.car); 
     } 
0

四直接アクセスすることができます:あなたはgetCarを(使用できるように

戻りオブジェクトの値

function getCar(){ 
    var cars = { 
      car: "ford", speed: 300 
     } 
    return cars 
} 

)車のオブジェクトを取得する

getCar() // {car:"ford",speed:300} 

あなたの関数(コンストラクタ表記)

function car(car,speed){ 
    this.car = car 
    this.speed = speed 
} 

でオブジェクトを定義します次に、あなたは、このように新しい車を定義することができます。

ford = new car("Ford",200) 
ford //{car:"Ford",speed:200} 

あなたの機能を持つオブジェクトを定義します(リテラル表記)

var cars; //Define cars for later access 
function setCar(){ 
    cars = { 
      car: "ford", speed: 300 
     } 
} 

そして、あなたは車が

cars // {car:"ford",speed:300} 

が機能を取り除くオブジェクトだけリテラル表記を使用取得する変数の車を使用することができますあなたが

にアクセスすることができます

var cars = { 
    car: "ford", speed: 300 
    } 

cars //{car:"ford",speed:300} 

これらはすべて実行可能なオプションであり、さまざまな方法で達成できます同じ仕事をする。私はそれが最もシンプルなので、最後をお勧めします。

関連する問題