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

相关内容

热门资讯

专业师傅教你“天天电玩麻将到底... 专业师傅教你“天天电玩麻将到底有挂吗?其实是有挂(揭秘手机上必赢技巧)1、让任何用户在无需AI插件第...
专业师傅教你“比奇堡到底有挂吗... 自定义比奇堡系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管你是想分享...
专业师傅教你“友谊互动到底有挂... 您好:友谊互动确实真的有挂,软件请加QQ群客服咨询:1075075785确实是有挂的,很多玩家在这款...
专业师傅教你“启航竞技到底有挂... 你好启航竞技这个游戏其实有挂的,确实是有挂的,需要了解【请加QQ群客服咨询:1075075785】,...
专业师傅教你“来喜棋牌到底有挂... 专业师傅教你“来喜棋牌到底有挂吗?其实是有挂(揭秘手机上必赢技巧)是一款可以让一直输的玩家,快速成为...
专业师傅教你“乐趣麻将到底有挂... 您好:乐趣麻将确实真的有挂,软件请加QQ群客服咨询:1075075785确实是有挂的,很多玩家在这款...
专业师傅教你“荷花麻将到底有挂... 专业师傅教你“荷花麻将到底有挂吗?其实是有挂(揭秘手机上必赢技巧)1、让任何用户在无需AI插件第三方...
专业师傅教你“星星武汉麻将到底... 您好,星星武汉麻将这款游戏可以开挂的,确实是有挂的,需要了解{请加QQ群客服咨询:107507578...
专业师傅教你“闲逸麻将到底有挂... 专业师傅教你“闲逸麻将到底有挂吗?其实是有挂(揭秘手机上必赢技巧)是一款可以让一直输的玩家,快速成为...
专业师傅教你“王朝到底有挂吗?... 专业师傅教你“王朝到底有挂吗?其实是有挂(揭秘手机上必赢技巧)是一款可以让一直输的玩家,快速成为一个...
专业师傅教你“土豆娱乐到底有挂... 专业师傅教你“土豆娱乐到底有挂吗?其实是有挂(揭秘手机上必赢技巧)一、土豆娱乐AI软件牌型概率发牌机...
专业师傅教你“小下长牌到底有挂... 您好,小下长牌这款游戏可以开挂的,确实是有挂的,需要了解{请加QQ群客服咨询:1075075785}...
专业师傅教你“微乐浙江麻将到底... 自定义微乐浙江麻将系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管你是...
专业师傅教你“好友圈到底有挂吗... 您好,好友圈这款游戏可以开挂的,确实是有挂的,需要了解{请加QQ群客服咨询:1075075785}很...
专业师傅教你“德州牛仔到底有挂... 您好,德州牛仔这款游戏可以开挂的,确实是有挂的,需要了解{请加QQ群客服咨询:1075075785}...
专业师傅教你“云圈丰城麻将到底... 你好云圈丰城麻将这个游戏其实有挂的,确实是有挂的,需要了解【请加QQ群客服咨询:1075075785...
专业师傅教你“奔富棋牌到底有挂... 亲,奔富棋牌这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,奔富棋牌的开挂软件,名...
专业师傅教你“乐伴到底有挂吗?... 专业师傅教你“乐伴到底有挂吗?其实是有挂(揭秘手机上必赢技巧)是一款可以让一直输的玩家,快速成为一个...
专业师傅教你“欢乐四喜到底有挂... 专业师傅教你“欢乐四喜到底有挂吗?其实是有挂(揭秘手机上必赢技巧)是一款可以让一直输的玩家,快速成为...
专业师傅教你“PPPoker到... 亲,PPPoker这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,PPPoker的...