ECMAScript 5.1,第 3 页:
在 ECMAScript 中,状态和方法由对象承载,结构、行为和状态都是继承的。
携带状态是什么意思,一个对象如何携带和继承状态?
ECMAScript 5.1,第 3 页:
在 ECMAScript 中,状态和方法由对象承载,结构、行为和状态都是继承的。
携带状态是什么意思,一个对象如何携带和继承状态?
“状态”本质上是指“对象记住的东西”。如果一个对象有一个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.