码迷,mamicode.com
首页 > 其他好文 > 详细

普通函数和构造函数的区别

时间:2017-07-10 00:32:17      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:copy   span   一个   决定   试题   对象   strong   类型   添加   

在命名规则上,构造函数一般是首字母大写,普通函数遵照小驼峰式命名法。
在函数调用的时候:
function fn() { }
     构造函数:1. new fn( )
                     2 .构造函数内部会创建一个新的对象,即f的实例
                     3. 函数内部的this指向 新创建的f的实例
                     4. 默认的返回值是f的实例
     普通函数:1. fn( )
                     2. 在调用函数的内部不会创建新的对象
                     3. 函数内部的this指向调用函数的对象(如果没有对象调用,默认是window)
                     4. 返回值由return语句决定
 
 构造函数的返回值
     有一个默认的返回值,新创建的对象(实例);
     当手动添加返回值后(return语句):
          1. 返回值是基本数据类型-->真正的返回值还是那个新创建的对象(实例)
          2. 返回值是复杂数据类型(对象)-->真正的返回值是这个对象
 
看一个常见的面试题
技术分享
 1 <script>
 2     function foo() {
 3         var f2 = new foo2();
 4         console.log(f2);    //{a: 3}
 5         console.log(this); //window
 6         return true;
 7     }
 8     function foo2() {
 9         console.log(this); //foo2类型的对象 不是foo2函数
10 //        this.age = 30;
11         return {a: 3};
12     }
13     var f1 = foo();
14     console.log(f1); // true
15 </script>

普通函数和构造函数的区别

标签:copy   span   一个   决定   试题   对象   strong   类型   添加   

原文地址:http://www.cnblogs.com/xiaoshuaidiboke/p/7143705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!