前端面试知识点合集

原型和原型链

任何函数都可以作为构造函数。当该函数通过 new 关键字调用的时候,就称之为构造函数。

javascript 复制代码
var Parent = function(){}

//定义一个函数,那它只是一个普通的函数,不能称它为构造函数

var instance = new Parent();
//这时这个Parent就不是普通的函数了,它现在是一个构造函数。因为通过new关键字调用了它
//创建了一个Parent构造函数的实例 instance

prototype函数 特有的属性

概括prototype的作用: 让某一个构造函数实例化的 所有对象 可以找到公共的方法和属性

javascript 复制代码
var Parent = function(){}
Parent.prototype.name="所有Parent的实例都可以读取到我"
let p1 = new Parent();
let p2 = new Parent();
p1.name="所有Parent的实例都可以读取到我"
p1.name //"所有Parent的实例都可以读取到我"
p2.name //"所有Parent的实例都可以读取到我"
p1._proto_ === Parent.prototype;// true

proto 属性是 对象 特有的属性。它表示当前对象的原型 proto 对象是谁。

总结: 每个对象都有一个原型(prototype),并从原型上继承属性和方法。原型本身也是一个对象,它也有自己的原型,形成一个链式结构。这种链式结构就被称为原型链。


constructor属性

constructor 是对象特有的属性。它表示当前对象的 构造函数。在刚刚的例子中,我们使用构造函数Parent()创建了实例对象 p1。因此 p1的 constructor 就是 Parent()。可以 console.log()试试

javascript 复制代码
console.log(p1.constructor);// f Parent(){}

JS中函数也是对象。那么函数是否也有constructor 属性?我们发现构造函数 Parent()也有 constructor 属性。可以 console.log() 试试。

javascript 复制代码
console.log(Parent.constructor);//f Function(){ [native code]}

如果继续追问: Function()是否也有 constructor 属性?可以 console.og()试试。我们发现Function函数的构造函数就是本身了。

javascript 复制代码
console.log(Function.constructor);//f Function(){ [native code]}
相关推荐
认真敲代码的小火龙7 分钟前
【JAVA项目】基于JAVA的图书管理系统
java·开发语言·课程设计
爱敲代码的小冰7 分钟前
js 时间的转换
开发语言·前端·javascript
缘三水7 分钟前
【C语言】14.指针(4)
c语言·开发语言·指针·语法
电子_咸鱼12 分钟前
【QT SDK 下载安装步骤详解 + QT Creator 导航栏使用教程】
服务器·开发语言·网络·windows·vscode·qt·visual studio code
AAA阿giao13 分钟前
深入理解 JavaScript 中的面向对象编程(OOP):从构造函数到原型继承
开发语言·前端·javascript·原型·继承·原型模式·原型链
2301_7973122613 分钟前
学习Java22天
java·开发语言
jllllyuz20 分钟前
MATLAB雷达系统设计与仿真
开发语言·matlab
IMPYLH21 分钟前
Lua 的 type 函数
开发语言·笔记·后端·junit·lua
老华带你飞32 分钟前
英语学习|基于Java英语学习系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端·学习
qq_4798754334 分钟前
C++ 模板元编程
java·开发语言·c++