JS入门难点解析11-构造函数,原型对象,实例对象

(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!)
(注2:本文首发于我的简书,更多内容请查看我的目录。)

1. 简介

在前面,我们对这三个概念已经有所涉及,但是却并未深究。事实上,如果能熟练理解掌握这三个概念和他们之间的关系,那么在学习原型链和继承的知识时,会有一种拨云见雾之感。

2. 构造函数

构造函数其实与普通函数本身并无区别,普通函数通过new调用时,我们就称其为构造函数。当然,为了区分其与普通函数,构造函数约定首字母需要大写。下面,我们就来看一下构造函数和普通函数使用时的区别(简单来讲就是一个函数通过new调用和不通过new调用的区别)。

2.1 一个空函数

// 空函数
function A() {
   }
var a1 = A();
var a2 = new A();
console.log('a1:', a1);  //undefined
console.log('a2:', a2);  //{}

在chrome的控制台console运行结果如图所示:
2.1
直接调用返回undefined,而使用new调用返回的却是一个空对象。这里,我们暂且不去讨论__proto__和constructor的含义。

2.2 无this有return,但是return后面无返回值,或者返回基本类型值。

// 无返回值
function A() {
   
    return;
}
//返回undefined类型值
function B() {
   
    return undefined;
}
// 返回Number类型值
function C() {
   
    return 1;
}
// 返回String类型值
function D() {
   
    return '1';
}
// 返回Boolean类型值
function E() {
   
    return true;
}
// 返回Null类型值
function F() {
   
    return null;
}
var a1 = A();
var a2 = new A();
console.log('a1:', a1);
console.log('a2:', a2);
var b1 = B();
var b2 = new A();
console.log('b1:', b1);
console.log('b2:', b2);
var c1 = C();
var c2 = new A();
console.log('c1:', c1);
console.log('c2:', c2);
var d1 = D();
var d2 = new A();
console.log('d1:', d1);
console.log('d2:', d2);
var e1 = E();
var e2 = new A();
console.log('e1:', e1);
console.log('e2:', e2);
var f1 = F();
var f2 = new A();
console.log('f1:', f1);
console.log('f2:', f2);

<

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值