return的用法,加了return和去掉return,结果完全不同

自己写的一个替换模板,如下是代码:
<html>

<div id="temp">
    <p>{{text1}}</p>
    <p>{{text2}}</p>
    <p>{{text3}}</p>
</div>

</html>
<script>

var temp=function(template, data) {
      return  template.replace(/\{\{([\w\.]*)\}\}/g,function(str,key){
            var v=data[key];
            return v;
        })
}
var Data={
text1:"a",
text2:"b",
text3:"d"
};
var Temp=document.getElementById("temp").innerHTML;
var html=temp(Temp,Data);
document.write(html);

</script>
显示结果:
{{text1}}

{{text2}}

{{text3}}

a

b

d;
**问题:如果没有加第一个return,显示的结果不是a,b,c,而是一个undefined;
请问是为什么呢?**

阅读 2.4k
1 个回答
var html=temp(Temp,Data);

temp函数 没有返回语句,默认return undefined,赋值给html


PS:下次提问之前先搞好排版。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题