视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Javascript普通函数和构造函数的区别
2020-11-27 20:28:51 责编:小采
文档

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

在命名规则上,构造函数一般是首字母大写,普通函数遵照小驼峰式命名法。

在函数调用的时候:

function fn() { }

构造函数:1. new fn( )
2 .构造函数内部会创建一个新的对象,即f的实例
3. 函数内部的this指向 新创建的f的实例
4. 默认的返回值是f的实例

普通函数:1. fn( )
2. 在调用函数的内部不会创建新的对象
3. 函数内部的this指向调用函数的对象(如果没有对象调用,默认是window)
4. 返回值由return语句决定

构造函数的返回值:

有一个默认的返回值,新创建的对象(实例);
当手动添加返回值后(return语句):

1. 返回值是基本数据类型-->真正的返回值还是那个新创建的对象(实例)
2. 返回值是复杂数据类型(对象)-->真正的返回值是这个对象

看一个常见的面试题

<script>
 function foo() {
 var f2 = new foo2();
 console.log(f2); //{a: 3}
 console.log(this); //window
 return true;
 }
 function foo2() {
 console.log(this); //foo2类型的对象 不是foo2函数
// this.age = 30;
 return {a: 3};
 }
 var f1 = foo();
 console.log(f1); // true
</script>

下载本文
显示全文
专题