我对JavaScript对象感到非常困惑(作为一个C++开发人员(。这怎么可能
var myObj = {key1: "Hello", key2: "World"};
是类的实例还是只是数据结构的名称?为什么他们甚至称它为物体?
假设它本身是一个类,为什么使用冒号而不是等号(假设内容是变量(?
Javascript不是一种基于类继承的语言。 它是基于原型继承的。 当您创建一个带有一组大括号的新对象时,它本质上与执行此操作相同
var myObj = new Object()
用 JavaScript 创建的所有内容最初都继承自 Object
es6 之后的 JavaScript 确实使用了像 class 这样的关键字,但它纯粹是语法糖。 这是为了帮助其他开发人员习惯JavaScript及其奇怪的方式。 对MDN做一些研究,你的所有答案都在那里。
参见 MDN:
JavaScript 中几乎所有的对象都是 Object 的实例;典型的对象从 Object.prototype 继承属性(包括方法(,尽管这些属性可能会被阴影化(也称为被覆盖(。