为什么对象使用哈希表而不是仅使用' class'

时间:2014-04-10 18:18:32

标签: javascript

我来自Python并且非常擅长JS。除了对象声明之外,到目前为止一切都很简单使用键值对制作对象看起来非常麻烦和令人困惑。

这有什么意义?

编辑: 我对javascript对象的想法是:

var person = {firstname:"John", lastname:"Doe", age:50, eyecolor:"blue"}; 

看起来好像只是一种形式的对象。

2 个答案:

答案 0 :(得分:2)

<强> [编辑]

制作对象关联数组的选择是明确的;大概是因为在某些情况下,可以方便地在运行中创建对象/结构,而不是符合预定义的&#34;类&#34;。

这&#34;松散的打字&#34;还允许您基于对象的属性而不是类型创建可重用代码。

<强> [原文]

  

到目前为止,除了对象声明之外,一切都很简单。使用键值对制作对象看起来非常麻烦和令人困惑。

我不知道,对我来说似乎很容易......

function Person(name, age) {
  this.name = name;
  this.age = age;
}

var joe = new Person('Joe', 10);
joe.name; // => "Joe"
joe.age;  // => 10

选择&#34;原型继承&#34;而不是经典的继承&#34;故意(无论好坏);它只是一种不同的做事方式,有自己的优点和缺点。

答案 1 :(得分:1)

  1. 大多数OO语言将对象实现为非常类似于哈希表的东西,js只是将其显式化。
  2. 使用比创建类更加不同和更多工作的键值对?类只是用于在某些变量上创建闭包的函数。这种模式变得流行,因此人们开始将其烘焙成语言。
  3. Ecmascript 6包括添加课程:
  4. http://code.tutsplus.com/articles/use-ecmascript-6-today--net-31582#class

    请参阅上面的@maerics代码。也许你做错了(有几种方法可以在js中获得OO行为)。