|
ECMAScript支持基于原型的繼承。每個構造器都有一個與之關聯的原型,而且通過此構造器創(chuàng)建的對象都有一個與構造器原型關聯的隱式引用(稱為,對象的原型)。進一步說,一個原型可能有一個對其原型的非空隱式引用……,這被稱為,原型鏈。當一個引用指向對象的屬性,這個引用指向原型鏈中的第一個對象的以此為名的屬性。換句話說,第一次,這個直接關聯的對象,將為這個屬性被檢查。如果這個對象包含以此為名的屬性,這個屬性就是引用指向的屬性。如過這個對象不包含以此為名的屬性,那么這個對象的原型將會被繼續(xù)檢查……
原文:
Object
ECMAScript does not contain proper classes such as those in C++, Smalltalk, or Java, but rather,supports constructors which create objects by executing code that allocates storage for the objects and initialises all or part of them by assigning initial values to their properties. All constructors are objects,but not all objects are constructors. Each constructor has a Prototype property that is used to implement prototype-based inheritance and shared properties. Objects are created by using constructors in new expressions; for example, new String("A String") creates a new String object. Invoking a constructor without using new has consequences that depend on the constructor. For example,String("A String") produces a primitive string, not an object.
ECMAScript supports prototype-based inheritance. Every constructor has an associated prototype, and every object created by that constructor has an implicit reference to the prototype (called the object's prototype) associated with its constructor. Furthermore, a prototype may have a non-null implicit reference to its prototype, and so on; this is called the prototype chain. When a reference is made to a property in an object, that reference is to the property of that name in the first object in the prototype chain that contains a property of that name. In other words, first the object mentioned directly is examined for such a property; if that object contains the named property, that is the property to which the reference refers; if that object does not contain the named property, the prototype for that object is examined next; and so on.
JavaScript技術:Javascript 對象的解釋,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。