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学习笔记,内容来源于极客时间《重学前端》,推荐该课程。

相关内容

热门资讯

诺基亚8刷安卓系统,解锁无限可... 你手中的诺基亚8是不是已经有点儿落伍了呢?别急,今天就来给你支个招,让你的老伙计焕发新生,变身安卓小...
安卓系统能不能,可以。 你有没有想过,安卓系统到底能不能?这个问题,就像是在问一个老朋友,他是不是真的懂你。安卓系统,这个陪...
安卓系统恢复误删视频,轻松找回... 手机里的视频突然不见了,是不是你也遇到了这样的尴尬情况?别急,今天就来教你如何用安卓系统恢复误删的视...
华为安卓系统的siri,华为安... 你知道吗?华为最近在安卓系统上搞了个大动作,那就是推出了自己的Siri——华为助手。这可真是让人眼前...
wp模拟安卓系统界面,畅游虚拟... 你有没有想过,在电脑上也能体验到安卓系统的流畅与便捷呢?没错,这就是今天我要跟你分享的神奇小玩意——...
安卓系统的开发团队,谷歌开发团... 你知道吗?在科技的世界里,有一个团队可是默默无闻地创造了无数奇迹,他们就是安卓系统的开发团队。这个团...
俄语流利说安卓系统,轻松掌握俄... 你有没有想过,学习一门新语言竟然可以变得如此轻松有趣?没错,我要给你安利一款神器——俄语流利说安卓系...
安卓P系统原装铃声,唤醒科技之... 你有没有发现,手机里的那些原装铃声,有时候比我们自己的手机铃声还要动听呢?尤其是安卓P系统的原装铃声...
稳定无广告安卓系统,探索稳定无... 你有没有想过,手机系统就像是我们生活的环境,有时候干净整洁,有时候却满是杂乱无章的广告?今天,我要给...
安卓系统隔离运行app,技术革... 你知道吗?在智能手机的世界里,安卓系统可是个超级明星呢!它不仅功能强大,而且兼容性极好,几乎所有的手...
佳博3120安卓系统,引领移动... 你有没有听说过佳博3120安卓系统?这款设备最近可是火得一塌糊涂呢!想象一台集成了安卓系统的打印机,...
安卓系统放音乐全屏,沉浸式听觉... 你有没有发现,用安卓手机放音乐的时候,有时候屏幕会自动全屏显示,这可真是挺有趣的。你知道吗?这个小小...
安卓子系统是win,基于Win... 你知道吗?在科技的世界里,总是充满了惊喜和未知。今天,我要给你揭秘一个你可能没听说过的秘密:安卓子系...
金刚导航升级安卓系统,畅享智能... 你知道吗?最近金刚导航可是来了一次大变身呢!没错,就是那个我们平时出行时离不开的导航神器——金刚导航...
安卓系统有话筒软件,畅享便捷沟... 你有没有发现,手机里的安卓系统里竟然藏着这么一个神奇的小玩意儿——话筒软件!没错,就是那个可以让你随...
安卓备份系统版本更新,版本更新... 你知道吗?最近安卓备份系统又来了一次大更新,这可真是让人兴奋不已呢!想象你的手机备份功能变得更加智能...
htc怎么降级安卓系统,轻松恢... 你有没有发现,有时候手机系统更新后,新功能虽然多了,但速度却慢了下来,甚至有些功能还不太好用?这不,...
索尼电视安卓系统优点,畅享无限 亲爱的电视迷们,你是否在寻找一款既能满足你对画质追求,又能让你畅享智能生活的电视呢?今天,就让我带你...
智能驭领系统安卓,引领未来智能... 你有没有发现,最近手机界又掀起了一股热潮?没错,就是那个让人眼前一亮的智能驭领系统安卓!今天,就让我...
安卓u15.1系统,功能升级与... 你有没有发现,最近你的安卓手机更新到了U15.1系统?别小看了这个小小的升级,它可是带来了不少惊喜呢...