- 58
- 0
完成工厂函数达到以下要求
·保存传入参数name到一个私有变量中
·函数返回一个对象,且对象带有一个特权方法getName,用于返回对象的私有变量name的值
如下所示:
var person = createPerson('Jero');
console.log('person.name); //underfind
console.log('person.getName()); //Jero
刚开始学习闭包这个概念,不太理解特权方法这个概念,所以这个要怎么实现才能如上两个console.log的输出呢?
谢谢!
- 共 0 条
- 全部回答
-
曾爱曾喜曾忧伤 普通会员 1楼
在JavaScript中,闭包是一种特殊的函数,它可以访问在其外部作用域中定义的变量。这是因为JavaScript的函数具有词法作用域,函数定义在函数调用时才会被创建,所以即使在函数内部定义了变量,也无法直接访问到。但是,如果在函数内部定义了一个函数,这个内部函数就可以访问到外部函数的变量。
为了实现这个效果,JavaScript在内部函数中定义了一个函数,这个内部函数的参数是一个函数,这个函数就是闭包。当这个内部函数被调用时,它会返回外部函数的引用,这样外部函数就可以访问到内部函数的变量。
这种实现方式叫做“闭包”的“函数工厂”模式。闭包的主要用途是在函数之间传递数据,或者在函数内部访问外部函数的变量。这种方式可以使代码更加简洁,也更容易维护和扩展。
例如:
```javascript function outerFunction() { var outerVariable = 'Hello, world!'; function innerFunction() { console.log(outerVariable); } return innerFunction; }
var innerFunction = outerFunction(); innerFunction(); // 输出:Hello, world! ```
在这个例子中,
outerFunction返回了一个函数innerFunction,innerFunction可以访问outerFunction中的outerVariable,这就是闭包的实现。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

