如何访问此功能内的对象?

时间:2016-10-13 01:14:12

标签: javascript

我想在这个函数中访问car对象的属性吗?

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

4 个答案:

答案 0 :(得分:2)

您无法按照您编写的方式从函数外部访问它,这将从函数定义的范围之外访问它。

您可以在函数外部定义变量cars,然后在函数内部设置它。然后,一旦调用该函数,您就可以访问它设置的值。

var cars;

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

答案 1 :(得分:1)

该对象的范围是声明它的函数。

但是你可以返回值。

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

var initCars = initStage();

根据您的要求,您还可以将其作为构造函数,并让汽车对象为实例的属性。

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

new initStage().cars

答案 2 :(得分:0)

您可以直接访问

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

答案 3 :(得分:0)

四种可能的解决方案:

返回对象的值

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

这样你就可以使用getCar()来获取汽车对象

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}

所有这些都是可行的选择,允许多种方式来实现相同的任务。我推荐最后一个,因为它是最简单的。