函数与构造函数的区别

前言

本文记录普通函数与构造函数的区别对比。
另外关于普通函数调用的fn()和构造函数调用的new fn(),在另一篇文章

正文

对比

  1. 命名方式,普通函数一般小写,构造函数首字母大写
// 普通函数:
function fn() {
    this.a = 1;
}

// 构造函数:
function Fn() {
    this.a = 1;
}
  1. 调用方法,普通函数一般直接调用,构造函数一般new方法调用
// 普通函数:
fn()

// 构造函数:
var f = new fn()
  1. 原理
// 普通函数因为没有返回值,一般为undefined,函数中的this一般指向外层,比如window
fn();
undefined;
window.a; // 1
// 构造函数因为有返回值,函数中的this指向对象本身。
var f = new fn();
f
f instanceof fn; // true
window.a; // undefined
f.a; // 1
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容