原型、原型链、判断数据类型

目录

作用

原型链

引用类型:__proto__(隐式原型)属性,属性值是对象函数:prototype(原型)属性,属性值是对象

Function:本身也是函数

相关方法

person.prototype.isPrototypeOf(stu)

Object.getPrototypeOf(object)替换已不推荐的object._ _ proto _ _ 

Object.create(instance) 以一个现有对象作为原型,创建一个新对象

Object.hasOwn(obj,属性):判断是否为自有属性

应用

new

函数装饰器:在一个函数 执行前 或 执行后 添加额外的逻辑

判断数据类型

运算符

typeof:判断 基本数据类型

typeof null=Object 类型标签均为000

实例 instanceof 构造函数:判断原型链,和isPrototypeOf

方法

构造函数.prototype.isPrototypeOf(实例) :判断原型链

(数据).constructor === 数据类型:不包含继承类型

显示:toString,valueOf 除了null,undefined

valueOf:this 值转换成对象。除了Date都是返回数据本身

console.log

toString:重写对象的类型转换。console.log


作用

原型被定义为给其它对象提供共享属性的对象,函数的实例可以共享原型上的属性和方法

原型链

引用类型:__proto__(隐式原型)属性,属性值是对象
函数:prototype(原型)属性,属性值是对象

const o = {a: 1,b: 2,// __proto__ 设置了 [[Prototype]]。它在这里被指定为另一个对象字面量。__proto__: {b: 3,c: 4,__proto__: {d: 5,},},
};// { a: 1, b: 2 } ---> { b: 3, c: 4 } ---> { d: 5 } ---> Object.prototype ---> nullconsole.log(o.d); // 5

Function:本身也是函数

console.log(Function.prototype === Function.__proto__); // true

Function 本身是一个函数。而所有函数都是Function 的实例。所以 Function是Function的实例

相关方法

person.prototype.isPrototypeOf(stu)

Object.getPrototypeOf(object)替换已不推荐的object._ _ proto _ _ 

Object.create(instance) 以一个现有对象作为原型,创建一个新对象

Object.hasOwn(obj,属性):判断是否为自有属性

应用

new

var a=1;
function fn1(){var a=2;console.log(this.a+a);
}
//f1并没有被作为对象的方法调用, this 指向全局对象,在浏览器中是 window
f1();//3 function fn2(){var a=10;fn1();
}
//在 fn2 函数内部调用 fn1 函数,但是 fn1 函数内部的 this 仍然指向全局对象 window,因为 fn1 并没有被作为方法调用。
fn2();//3 var fn3=function(){this.a=3;
}
fn3.prototype={a:4
}
var fn33=new fn3();
fn1.call(fn33)
//5

函数装饰器:在一个函数 执行前 或 执行后 添加额外的逻辑

Function.prototype.before=function(beforefn){return ()=>{beforefn.apply(this,arguments)return this.apply(this,arguments)}
}
Function.prototype.after=function(afterfn){return ()=>{var res=this.apply(this,arguments)afterfn.apply(this,arguments)return res;}
}var func=function(){console.log(1)
}.before(function(){console.log(2)
}).after(function(){console.log(3)
})
func()//213

判断数据类型

运算符

typeof:判断 基本数据类型

typeof null=Object 类型标签均为000

实例 instanceof 构造函数:判断原型链,和isPrototypeOf

Object.prototype.isPrototypeOf({})// true
{} instanceof Object// true
Object instanceof Object//true
Function instanceof Function//true

方法

构造函数.prototype.isPrototypeOf(实例) :判断原型链

(数据).constructor === 数据类型:不包含继承类型

显示:toString,valueOf 除了null,undefined

valueOf:this 值转换成对象。除了Date都是返回数据本身

console.log

在这里插入图片描述

toString:重写对象的类型转换。console.log

在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/147796.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享一款开源的QT的串口示波器

分享一款开源的QT的串口示波器,完全开源,支持串口、TCP、波形显示、通信协议。 Sailor Project功能说明 串口调试助手功能 支持传统的串口调试助手的基本收发功能,同时可以刷新大量的数据而不卡顿 支持保存接收的数据 支持最大200条可编辑…

Docker Tutorial

什么是Docker 为每个应用提供完全隔离的运行环境 Dockerfile, Image,Container Image: 相当于虚拟机的快照(snapshot)里面包含了我们需要部署的应用程序以及替它所关联的所有库。通过image,我们可以创建很…

SD卡格式化怎么恢复?

随着智能手机、平板电脑、数码相机和行车记录仪等各种移动电子设备走入千家万户,SD卡作为与这些设备相配套的存储介质,也随之获得了广泛的市场认可。SD卡因其体积小巧、容量庞大、读写速度高及与多种设备兼容的优点,逐渐成为日常工作和生活中…

linux 笔记:远程服务器登录jupyter notebook

1 生成jupyter notebook 配置文件(服务器端) jupyter notebook --generate-config #Writing default config to: /home/shuailiu/.jupyter/jupyter_notebook_config.py2 Ipython中设置密码(服务器端) 3 修改jupyter 配置文件&…

如何使用百度“云一朵”来分析PDF文件

PDF 文件是一种常见的文件格式,用于存储文档、图像和其他内容。在许多情况下,我们需要对 PDF 文件进行分析,以提取其中的信息。百度“云一朵”提供了一个 PDF 分析 API,可以帮助我们轻松地对 PDF 文件进行分析。 在本博客文章中&…

车牌文本检测与识别:License Plate Recognition Based On Multi-Angle View Model

论文作者:Dat Tran-Anh,Khanh Linh Tran,Hoai-Nam Vu 作者单位:Thuyloi University;Posts and Telecommunications Institute of Technology 论文链接:http://arxiv.org/abs/2309.12972v1 内容简介: 1)方向&#x…

基于spring boot的医疗管理系统 /基于java的医疗系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…

概率密度函数,概率分布函数

概率密度函数:描述信号的取值在某个确定的取值点附近的概率的函数;概率分布函数的导数。 以幅值大小为横坐标,以每个幅值间隔内出现的概率为纵坐标进行统计分析。反映了信号落在不同幅值强度区域内的概率情况。 直方图:对每个幅…

解决nvm切换node版本失败的终极办法-秒杀网上99%的水文

nvm是一款强大的node多版本管理器,可以轻易选择你需要的node版本,这对win7平台简直就是超好的福音:可以突破node 14.15以上的安装限制。 但是nvm安装有一个巨大的坑点:nvm use 版本号以后,并没有生效,nvm …

【时区】Flink JDBC 和CDC时间字段时区 测试及时间基准

关联文章: 各种时间类型和timezone关系浅析 一、测试目的和值 1. 测试一般的数据库不含time zone的类型的时区。 mysql timestamp(3) 类型postgres timestamp(3) 类型sqlserver datetime2(3) 类型oracle类型 TIMESTAMP(3) 类型 在以下测试之中均为ts字段 2.测试CDC中元数据…

【深蓝学院】手写VIO第4章--基于滑动窗口算法的 VIO 系统:可观性和 一致性--作业

0. 内容 T1. 参考SLAM14讲P247直接可写,注意 ξ 1 , ξ 2 \xi_1,\xi_2 ξ1​,ξ2​之间有约束(关系)。 套用舒尔补公式: marg掉 ξ 1 \xi_1 ξ1​之后,信息被传递到 L 1 和 L 2 L_1和L_2 L1​和L2​之间了。 T2. …

IDM(Internet Download Manager)2024中文版下载工具软件

IDM(Internet Download Manager):功能强大,下载速度快,支持多线程下载,下载过程中遇到突然断电等情况,可以进行断点续传,很多人因此而首选IDM。 优点: (1&a…

抖音聊天对话模板,制作一条一条冒出来的聊天对话短视频

聊天对话模板是一种非常有趣且实用的工具,它主要用于制作抖音聊天记录一条一条冒出来的视频。有了聊天对话模板,你再也不需要费心去写剧本,只需输入一些简单的文案,就能自动生成搞笑对话视频。 聊天对话工具下载: htt…

AI配套的技术: 矢量数据库的概念

一、说明 随着人工智能的快速采用和围绕大型语言模型发生的创新,我们需要在所有这些的中心,能够获取大量数据,将其上下文化,处理它,并使其能够有意义地搜索。 为原生整合生成式 AI 功能而构建的生成式 AI 流程和应用程…

前端——html面试题(一)

文章目录 前言一、说说你对 html 语义化的理解。二、html的标签有哪些三、标签类型1、问题:请说说你对块级元素、行内元素、空元素的理解,它们分别都有哪些常见的标签? 总结 前言 说说对html语义化的理解html的标签标签类型 一、说说你对 ht…

【C语言】汉诺塔 —— 详解

一、介绍 汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大焚天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。 大焚天命令婆罗门把圆盘从下面开始按…

2023蓝帽杯半决赛电子取证+CTF部分题解

文章目录 电子取证123456789101112131415 CTFWeb | MyLinuxBotWeb | AirticleShareCrypto | ezrsaPwn | AdminPwn | uafmisc|排排坐吃吃果果 电子取证 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CTF Web | MyLinuxBot Web | AirticleShare import requests import times reques…

lv7 嵌入式开发-网络编程开发 05 字节序及IP地址转换

目录 1 主机字节序和网络字节序 1.1 什么是字节序? 1.2 查看主机字节序 2 字节序转换函数 3 IP地址字节序转换函数 4 练习 1 主机字节序和网络字节序 1.1 什么是字节序? 字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序&a…

不做静态化,当部署到服务器上的项目刷新出现404【已解决】

当线上项目刷新出现404页面解决方法: 在nginx配置里加入这样一段代码 try_files $uri $uri/ /index.html; 它的作用是尝试按照给定的顺序访问文件 变量解释 try_files 固定语法 $uri 指代home文件(ip地址后面的路径,假如是127.0.0.1/index/a.png&…

【OpenCV-Torch-dlib-ubuntu】Vm虚拟机linux环境摄像头调用方法与dilb模型探究

前言 随着金秋时节的来临,国庆和中秋的双重喜庆汇聚成一片温暖的节日氛围。在这个美好的时刻,我们有幸共同迎来一次长达8天的假期,为心灵充电,为身体放松,为未来充实自己。今年的国庆不仅仅是家国团聚的时刻&#xff…