这里有个对函数执行顺序的问题搞不懂希望老师解答一下
来源:6-3 实现上下翻页功能数据渲染

暴走大熊
2016-05-31
var readerUI = ReaderBaseFrame(RootContainer); readerModel.init(function(data){ readerUI(data); });
function ReaderBaseFrame(container){ function praseChapterData(jsonData){ var jsonObj = JSON.parse(jsonData); var html = "<h4>"+ jsonObj.t+"<h4>"; for(var i= 0;i<jsonObj.p.length;i++){ html += "<p>"+ jsonObj.p[i] + "<p>"; } return html; } return function(data){ container.html( praseChapterData(data)); } }
前面那段代码在执行ReaderBaseFrame()的时候他的执行顺序是怎么样的,怎么可以做到RootContainer参数传递给container,而data参数传递给praseChapterData(data)里的data,对于这种return出去的函数不太懂,他的原理是什么,该怎么理解?
写回答
2回答
-
实际上你可以这么理解
var a = function(data){
container.html( praseChapterData(data));
}
ReaderBaseFrame 就是 a
然后readerUI本质上就是a();的返回结果
012016-05-31 -
远人
2016-06-01
我简化一下这个ReaderBaseFrame函数吧,实际上他就等价于:
ReaderBaseFrame = function(data){
var jsonObj = JSON.parse(data);
var html = "<h4>"+ jsonObj.t+"<h4>";
for(var i= 0;i<jsonObj.p.length;i++){
html += "<p>"+ jsonObj.p[i] + "<p>";
}
container.html(html);
}
012016-06-01
相似问题