1. 首页
  2. web前端
  3. Javascript

Javascript 原型 构造函数 、 原型 、 原型链

constructor 、 prototype [[prototype]] 、_proto_

简介

***********************************************************************************************************

首先要了解 属性 constructor 、 prototype [[prototype]] 、_proto_  分别作用是什么、理解几个概念 原型、原型链、构造函数。

构造函数

constrcutor是一种用于创建和初始化class创建的对象的特殊方法。构造函数本身就是一个函数与普通函数没有任何区别,不过为了规范一般将其首字母大写。构造函数普通函数的区别在于,使用 new 生成实例的函数就是构造函数,直接调用的就是普通函数。下面示例代码:

function ConstructorFunction (name) {
        this.name = name;
}
// 通过new关键字创建实例
let constructorFunction = new ConstructorFunction();

其实ConstructorFun就是一个普通函数,但是在通过new关键字生成实例的时候,就可以把这个函数叫做构造函数;

constructor

除了nullundefined其他无论是通过new生成的实例,还是通过字面量生成的变量,普通的函数都是有constructor属性的。

代码如下:

function ConstructorFun (name) {
       this.name = name;
}
// 通过new关键字创建实例
var constructorfun = new ConstructorFun();
constructorfun.constructor === ConstructorFun; // true
var number = 111;
console.log(number.constructor); // ƒ Number() { [native code] }

构造函数扩展

  • let a = {} 其实是 let a = new Object() 的语法糖
  • let a = [] 其实是 let a = new Array() 的语法糖
  • function Foo(){ … } 其实是 var Foo = new Function(…)
  • 可以使用 instanceof 判断一个函数是否为一个变量的构造函数

 

本文来自投稿,不代表 怪小克 立场,如若转载,请注明出处:https://wangchaoke.cn/?p=114

本站发布的内容若侵犯到您的权益,请邮件联系 860095347@qq.com 删除,我们将及时处理!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

860-095-347

在线咨询:点击这里给我发消息

邮件:860095347@@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code