前端面试知识点合集

原型和原型链

任何函数都可以作为构造函数。当该函数通过 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]}
相关推荐
咸鱼翻身小阿橙几秒前
Qt页面小项目
开发语言·qt·计算机视觉
knight_9___8 分钟前
RAG面试题4
开发语言·人工智能·python·面试·agent·rag
编程之升级打怪15 分钟前
自定义实现Java的HashMap集合
java·开发语言
Ulyanov18 分钟前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio状态机深度应用:智能待办事项管理系统
开发语言·python·qt·gui·雷达电子对抗系统仿真
MinterFusion18 分钟前
如何使用Qt5在窗口中显示矩形(v0.1.3)(上)
开发语言·qt·编程·明德融创·窗口中绘制矩形
码王吴彦祖19 分钟前
AI 逆向分析国航 AirChina FECU 参数来源并实现离线生成
android·java·javascript
LJianK119 分钟前
进程、线程、多线程、异步
java·开发语言·jvm
JMchen12324 分钟前
第 1 篇|Kotlin 基础入门 —— 变量、函数与空安全
开发语言·kotlin·android 入门·kotlin 空安全·android 零基础
t***54426 分钟前
如何验证Clang是否在Dev-C++中正常工作
开发语言·c++
Z_Wonderful26 分钟前
实现图片拖动、鼠标中心点缩放、文字层跟随功能
前端·javascript·计算机外设