4

ECMAScript 5.1,第 3 页:

在 ECMAScript 中,状态和方法由对象承载,结构、行为和状态都是继承的。

携带状态是什么意思,一个对象如何携带和继承状态?

4

1 回答 1

4

“状态”本质上是指“对象记住的东西”。如果一个对象有一个color设置为的属性"blue",那是它的状态的一部分。而“携带状态”只是意味着它有一些。

因此,我们可以(不精确地)将该句子的第一部分简化为:“在 ECMAScript 中,对象可以存储数据(和方法)。”

然而,ECMAScript 是一种面向对象的语言,使用原型继承。这意味着任何对象不仅可以拥有自己的数据和方法,而且还可以从其父对象(其原型)继承数据和方法。

用 JavaScript 写一个非常粗略的例子:

function Foo() {
    this.color = "blue";
}
Foo.prototype = { shape: "circle" }

var foo = new Foo();
alert(foo.shape); // This will be "circle", even though the datum is technically part of the prototype.
于 2012-07-07T20:33:32.237 回答