javascript模块模式 - 不了解返回值

时间:2014-01-28 18:14:50

标签: javascript

我试图理解我发现的一些代码:

var myApplication = function(){
 var name = 'Chris';
 var age = '34';
 var status = 'single';
 function createMember(){
 // [...]
 }
 function getMemberDetails(){
 // [...]
 }
 return{
 create:createMember,
 get:getMemberDetails
 }
}();
//myApplication.get() and myApplication.create() now work.

我不理解返回的语法及其工作原理。我发现的解释与指针有关,但我真的不明白它在说什么。有人可以向我解释一下吗?

2 个答案:

答案 0 :(得分:2)

此语句返回myApplication函数

中作用域的功能
return {
    create:createMember,
    get:getMemberDetails
}

它的工作原理是因为您通过对象公开引用createMembergetMemberDetails

修改

另外,myApplication是调用函数的结果,在声明时立即调用它,这要归功于以下语法

(function myFunction() {
    // some code
}())

答案 1 :(得分:1)

myApplication收到函数执行的返回。这个回报是一个对象。

该对象有两个属性:createget

create(以及get)属性的值是一个函数,之前在myApplication本地范围中定义。

当您致电myApplication.get()时,您正在执行该功能。