资讯专栏INFORMATION COLUMN

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

MiracleWong / 1731人阅读

摘要:的属性分为两类,一种是规定的,一种是浏览器私有的各浏览器可能不一样。规定的有等,浏览器私有的等。对象函数类型对象类型函数对象函数对象函数因为也是

全局变量

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94945.html

相关文章

  • 深入理解JavaScript

    摘要:深入之继承的多种方式和优缺点深入系列第十五篇,讲解各种继承方式和优缺点。对于解释型语言例如来说,通过词法分析语法分析语法树,就可以开始解释执行了。 JavaScript深入之继承的多种方式和优缺点 JavaScript深入系列第十五篇,讲解JavaScript各种继承方式和优缺点。 写在前面 本文讲解JavaScript各种继承方式和优缺点。 但是注意: 这篇文章更像是笔记,哎,再让我...

    myeveryheart 评论0 收藏0
  • JavaScript 原型哲学思想

    摘要:而作为构造函数,需要有个属性用来作为以该构造函数创造的实例的继承。 欢迎来我的博客阅读:「JavaScript 原型中的哲学思想」 记得当年初试前端的时候,学习JavaScript过程中,原型问题一直让我疑惑许久,那时候捧着那本著名的红皮书,看到有关原型的讲解时,总是心存疑虑。 当在JavaScript世界中走过不少旅程之后,再次萌发起研究这部分知识的欲望,翻阅了不少书籍和资料,才搞懂...

    sugarmo 评论0 收藏0
  • 使用 new 操作符内部到底在做什么

    摘要:把方法移动到构造函数外部把方法移至外面,这样每次实例化内部的只是全局的引用,这样避免了重复。构造函数什么体内什么都没有,如果有叫做实例方法,实力属性缺点重复敲,造成大量的重复输入。 从对象声明开始一步步介绍 1.普通对象声明 首先创建自定义对象的最简单方式就是创建一个Object的实例,然后在为他们添加属性和方法,如下所示: var person = new Object(); ...

    curlyCheng 评论0 收藏0
  • 前端工程师手册】JavaScript原型

    摘要:又是一个比较重要的知识点原型。且和指向了同一个对象。可以是使用做什么创建对象的数据共享把一些实例共享的属性和方法放在原型上,节约空间。基于原型链的委托继承这个原型继承的关系可以用图来表示参考资料深入之从原型到原型链强大的原型和原型链 又是一个比较重要的知识点——原型(prototype)。 一个例子 function F() {} var f = new F() F.prototype...

    Darkgel 评论0 收藏0
  • 新手理解JS原型

    摘要:我们画张图来表示图中这条红色的线就是原型链。我们把方法放到实例的原型对象上面,也就是上面来供所有实例使用小明小红用图表示补充说一下我的经历,一开始理解原型链时,一直在在这个三个属性中绕来绕去。 一直以来对于JavaScript 的原型链的概念,始终有些东西有一种模糊感,最近刚好有时间就塌下心认真的把《JavaScript高级程序设计》中相关内容认真读了一遍,也查看了很多网上很多资料,以...

    Mike617 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<