var blogModule = (function (my) {
my.AddPhoto = function () {
//添加内部代码
};
return my;
} (blogModule));
请问一下,匿名函数‘my’是传入的值,那后面的blogModule是传出还是传入?最后return my还跟blogMoudule有关系吗?越来越对匿名函数自执行的理解不清晰
var blogModule = (function (my) {
my.AddPhoto = function () {
//添加内部代码
};
return my;
} (blogModule));
请问一下,匿名函数‘my’是传入的值,那后面的blogModule是传出还是传入?最后return my还跟blogMoudule有关系吗?越来越对匿名函数自执行的理解不清晰
传入呀,相当于
var blogModule = function (my) {
my.AddPhoto = function () {
//添加内部代码
};
return my;
};
blogModule(blogModule)
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
分解来看每一个名词的意思,
首先是
var
定义的blogModule
变量:简化一下就知道它是用来接收一个函数调用的返回值的变量,并且这个函数使用了
()
表达式包裹起来,是将函数调用作为一条表达式的意思。再来是第二个
blogModule
,它是传入匿名函数的实参,即将要传入的模块对象:最后是
my
,它是匿名函数定义的形参,接收传入的实参,也就是这个例子的blogModule
:所以在函数体中对
my
的属性或方法的增删改其实都是对传入blogModule
的操作。最后返回的my
,也是返回了修改后的blogModule
对象。