JavaScript对象【下】之早期版本中的类与原型
创始人
2024-05-31 19:53:02
0

早期版本的 JavaScript 中,“类”的定义是一个私有属性 [[class]],语言标准为内置类型诸如 Number、String、Date 等指定了[[class]]属性,以表示它们的类。语言使用者唯一可以访问[[class]]属性的方式是 Object.prototype.toString。

内置class属性的对象

var o = new Object;var n = new Number;var s = new String;var b = new Boolean;var d = new Date;var arg = function(){ return arguments }();var r = new RegExp;var f = new Function;var arr = new Array;var e = new Error;console.log([o, n, s, b, d, arg, r, f, arr, e].map(v => Object.prototype.toString.call(v))); 

new 运算接受一个构造器和一组调用参数,实际上做了几件事:

  • 以构造器的 prototype 属性(注意与私有字段[[prototype]]的区分)为原型,创建新对象;
  • 将 this 和调用参数传给构造器,执行;
  • 如果构造器返回的是对象,则返回,否则返回第一步创建的对象。

new 这样的行为,试图让函数对象在语法上跟类变得相似,但是,它客观上提供了两种方式,一是在构造器中添加属性,二是在构造器的 prototype 属性上添加属性。

没有 Object.create、Object.setPrototypeOf 的早期版本中,new 运算是唯一一个可以指定[[prototype]]的方法

ES6 中的类

新特性 class,代替了new 和function。

ES6 中引入了 class 关键字,并且在标准中删除了所有[[class]]相关的私有属性描述,类的概念正式从属性升级成语言的基础设施,从此,基于类的编程方式成为了 JavaScript 的官方编程范式。


class Rectangle {constructor(height, width) {this.height = height;this.width = width;}// Getterget area() {return this.calcArea();}// MethodcalcArea() {return this.height * this.width;}
}

ES6的出现拯救了JavaScript别扭的前期

此文章为3月Day09学习笔记,内容来源于极客时间《重学前端》,推荐该课程。

相关内容

热门资讯

bbugreport.exe:... 哎呀,说到这个bbugreport.exe,我的心情真是五味杂陈啊!你懂的,就是那个时不时蹦出来,让...
双网叠加路由器:让网络速度如火... 哎呀,说到这个双网叠加路由器,我简直要跳起来了!你知道吗,自从我换了这款路由器,家里的网络速度简直像...
枭雄怎么重新开始-从失败到新生... 在江湖的沧桑岁月中,每一个枭雄都有过辉煌的巅峰,也有过跌入谷底的苦涩。曾经的我,手握重兵,叱咤风云,...
邮件炸弹攻击主要是什么-警惕!... 邮件炸弹攻击,听起来就像是从科幻电影里跳出来的东西,对吧?但它可是真实存在的,而且就在我们的电子邮箱...
ubuntu 1404关闭3d... 哎呀,说到这个Ubuntu14.04啊,我真的是有点头疼。尤其是那个3D效果,简直是让我眼花缭乱,头...
android操作系统耗电-安... 哎呀,说到安卓手机,我这心里就一肚子火!每次出门前,手机电量还满格,结果没一会儿,就剩下个位数了。这...
雨田蜂蜜:承载童年记忆的甜蜜滋... 在那些细雨蒙蒙的日子里,我总是不由自主地想起家乡的那片雨田,以及那从田间飘来的蜂蜜香。那是一种无法用...
身份证号码查姓名地址,背后隐藏... 嘿,小伙伴们,今天咱们来聊聊一个有点儿神秘的话题——身份证号码查姓名地址。你有没有想过,那些冷冰冰的...
巫师3 dsound.dll在... 哎呀,朋友们,今天咱们来聊聊那个让人抓狂的dsound.dll问题。你知道的,就是那个在《巫师3》里...
android+验证身份证号码... 哎呀,今天咱们来聊聊这个有点严肃但又挺重要的话题——Android手机上怎么验证身份证号码。我知道,...
360数据恢复免费吗-360 ... 大家好,我是一个对电脑一窍不通的小白。前段时间,我不小心删了电脑里的一些重要文件,心里那个急啊,就像...
苹果7使用说明书图解-探索苹果... 大家好呀!今天我要带你们一起探索苹果7的奇妙世界,用最酷炫的方式解锁它的所有秘密!别担心,我们不需要...
win10开机启动项 命令-W... 哎呀,说到Win10开机启动项,我就一肚子火!每次开机,那屏幕就像在跟我玩捉迷藏,转啊转的,半天不见...
相机内存卡文件为空-珍贵照片离... 哎呀,真是气死我了!今天兴冲冲地打开相机,准备回味一下上个周末的欢乐时光,结果一看,我的天,那些珍贵...
苹果手机怎么快速省电-掌握这些... 哎呀呀,说到苹果手机省电,我可是有一肚子的话要说!你知道吗,每次看到手机电量从满格到红线,我的心就像...
北京朝阳医院儿科电话:希望的传... 在北京这座快节奏的都市里,每一个角落都充满了匆忙与喧嚣。但如果你细心倾听,会发现有一个声音始终温暖而...
易购分销平台:海量商品、超实惠... 大家好,我是小张,一个在街角开小店的老板。今天我要给大家聊聊我最近发现的一个超级棒的地方——易购分销...
opensuse 42.2壁纸... 嘿,亲爱的OpenSUSE爱好者们,今天咱们聊聊那些让人眼前一亮的OpenSUSE42.2壁纸!这些...
帝国 政府 模板-在宏伟帝国里... 在这个宏伟的帝国里,每一天都像是政府精心布置的一盘棋。我,一个深陷其中的小卒,感受着这场游戏的起伏与...
苹果恢复大师收费标准揭秘:基本... 大家好,今天咱们来聊聊这个让人又爱又恨的“苹果恢复大师”!你知道吗?这玩意儿简直就是苹果界的救星,但...