当前位置: 首页 > news >正文

前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别

全局变量

Global是是ECMAScript 中的全局对象(浏览器中是window),不属于其他对象的属性和方法,所有在全局作用域中定义的属性和方法,都是Global对象的属性(window)。

window的属性分为两类,一种是 ECMAScript 规定的,一种是浏览器私有的(各浏览器可能不一样)。ECMAScript 规定的有parseIntparseFloatNumberStringObjectBoolean等,浏览器私有的alertconsolepromptconfirmdocument等。

var n = 1        //n是基本类型(number)
var n1 = new Number(1)        //n1是对象(object)

对象有toString()方法,比如n1.toString()
基本类型也可以用toString()方法,它是通过在内存中创建一个临时变量来获取的,比如temp.toString(),在语句结束后这个变量就被回收了,所以:

var a = 1
a.xxx = 2        //语句结束后被回收,temp 在语句结束后将被回收
a.xxx   //undefined,再次访问该属性,值为undefined

String 常用 API

trim()裁剪字符串两边的空格
concat()连接两个字符串

原型

__proto__prototype的区别:

var s = new String()
//String.prototype 是 String 的公共属性(原型)的引用
//s.__proto__ 是 String 的公有属性(原型)的引用

NumberStringObjectBoolean的公有属性都存储在Object原型中。没写代码的时,浏览器就默认有这条原型链指向Object原型,如下图;当我们创建了一个变量后,它就创建了在Heap 中创建了一个对象,指向这个对象本身的原型,不在指向prototype,如下图红线。

对象.__proto__ === 函数.prototype;

var __①__ = new __②__;
//① 类型:对象
//② 类型:函数

var Object = new Function();
//var 对象 = new 函数;

Object.__proto__ === Function.prototype;
//对象.__proto__ === 函数.prototype;

Function.__proto__ === Function.prototype;
//因为 Function 也是 Object

相关文章:

  • 大数据产业重在应用 防止盲目建设数据中心
  • 实现基于zoom平台上的oss额外存储
  • 获彼得·泰尔青睐的在线借贷创企Kreditech获PayU 110万欧元投资
  • spring boot 传输数组类型数据
  • hausaufgabe--python 26 -Dict 2
  • 20172303 20172322 2017-2018-2 《程序设计与数据结构》结对编程项目-四则运算 项目总结...
  • telnet: connect to address 192.168.2.140: Connection refused
  • Java8学习笔记之Stream API
  • 国资委监事会主席季晓南:大数据金融发展要加强风险管控
  • 原生js获取、设置、删除属性
  • Linux安装mysql5.6
  • Python学习笔记__16.3章 UDP编程
  • 稳中有降 7月单路塔式服务器价格指导
  • Python入门知识
  • 云市场虽已硝烟弥漫但仍潜力巨大
  • @jsonView过滤属性
  • [笔记] php常见简单功能及函数
  • 【刷算法】从上往下打印二叉树
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Electron入门介绍
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • js学习笔记
  • node学习系列之简单文件上传
  • Redux 中间件分析
  • Spring Cloud Feign的两种使用姿势
  • springMvc学习笔记(2)
  • Sublime text 3 3103 注册码
  • vue.js框架原理浅析
  • 爬虫模拟登陆 SegmentFault
  • 浅谈Golang中select的用法
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何选择开源的机器学习框架?
  • 算法-图和图算法
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #、%和$符号在OGNL表达式中经常出现
  • #13 yum、编译安装与sed命令的使用
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (九)信息融合方式简介
  • (十)T检验-第一部分
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .NET Reactor简单使用教程
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .Net 垃圾回收机制原理(二)
  • .NET 依赖注入和配置系统
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • :“Failed to access IIS metabase”解决方法
  • :=
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [1159]adb判断手机屏幕状态并点亮屏幕