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

如何调用变量A对应函数内部的m函数并输出「Hello World」?

访问闭包内m函数并输出「Hello World」的方法

首先明确:变量m是定义在立即执行函数(IIFE)内部的私有变量,外部无法直接访问,但它已经被挂载到Person的原型上作为getGreeting方法,因此可以通过以下方式调用并得到目标输出:

方法1:通过Person实例调用

先创建Person实例(传入name为"World"),再调用原型上的getGreeting方法(本质就是内部的m函数):

const person = new A("World"); // 控制台会输出"World"
const result = person.getGreeting();
console.log(result); // 输出「Hello World」

实例调用时this指向该实例,this.name即为传入的"World",符合输出要求。

方法2:直接通过原型调用并绑定this

如果不想创建实例,可直接访问A.prototype.getGreeting,通过call或apply绑定指定的this对象:

const result = A.prototype.getGreeting.call({ name: "World" });
console.log(result); // 输出「Hello World」

这种方式无需创建实例,直接利用原型上的关联方法(即m函数),通过绑定this指定name值。

补充说明

闭包内的m函数属于私有变量,外部无法通过A.m这类直接方式访问,只能通过IIFE暴露的接口(此处为Person原型上的getGreeting)调用它。

内容的提问来源于stack exchange,提问作者hulk21

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:45:35