繁体   English   中英

如何访问此函数内的对象?

[英]How do I access the object inside this function?

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

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

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

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

var cars;

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

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

但是,您可以返回该值。

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

var initCars = initStage();

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

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

new initStage().cars

您可以直接访问它

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

四种可能的解决方案:

返回对象的值

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来获取cars对象

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

摆脱函数,只使用文字符号

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

然后您可以访问

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM