函数与构造函数的区别

2020-04-07  本文已影响0人  前端架构师陈龙威

前言

本文记录普通函数与构造函数的区别对比。
另外关于普通函数调用的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
上一篇 下一篇

猜你喜欢

热点阅读