You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从函数返回对象(R):关于return()及外部使用product的疑问

搞懂return的用法,轻松在外部获取函数内的对象

嘿,我来帮你把这个问题捋明白~首先先纠正一下你对return的小误解,然后给你演示怎么拿到函数里的product对象。

先澄清:return的核心作用是什么?

你之前的理解有点偏差——return并不是“允许外部使用函数内部的对象”,它的核心是把函数内部生成的值(可以是对象、变量、计算结果等等)传递回调用这个函数的地方。

函数内部的变量(比如你说的product)默认是被“封闭”在函数的作用域里的,外部代码本来根本访问不到。return就像是给这个值开了一个“出口”,主动把它递出函数作用域,让调用函数的代码能接住它。如果函数没有写return,那调用它的时候默认会返回undefined,自然拿不到你想要的对象。

怎么在外部获取函数里的product?

举个实际的例子,假设你之前写了类似这样的代码(没有return):

function makeProduct() {
  const product = { name: "无线耳机", price: 299 };
  // 这里没写return,外部拿不到product
}

const myProduct = makeProduct();
console.log(myProduct); // 输出undefined,因为函数没返回任何东西

只要给函数加上return product,然后调用函数的时候接收返回值就搞定了:

function makeProduct() {
  const product = { name: "无线耳机", price: 299 };
  return product; // 把product对象从函数里递出去
}

// 调用函数,把返回的对象存到myProduct变量里
const myProduct = makeProduct();
console.log(myProduct.name); // 现在就能输出"无线耳机"啦!

额外小知识点:return的其他特性

  • 一旦函数执行到return语句,就会立刻停止执行后面的代码,比如:
    function makeProduct(inStock) {
      const product = { name: "无线耳机", price: 299 };
      if (!inStock) {
        return "商品缺货"; // 这里执行后,函数直接结束,不会走到下面的return
      }
      return product;
    }
    
    console.log(makeProduct(false)); // 输出"商品缺货"
    
  • 你也可以直接返回创建对象的表达式,不用单独存变量:
    function makeProduct() {
      return { name: "无线耳机", price: 299 };
    }
    

这样是不是就清楚多啦?

内容的提问来源于stack exchange,提问作者SeánMcK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:26:06