February 24, 2001 - Keeping Prototyping Information
February 24, 2001 Keeping the Prototyping Information Tips: February 2001
Yehuda Shiran, Ph.D.
|
__proto__
(two underscore characters at the front and two at the end.) Let's take an example:
<SCRIPT LANGUAGE="JavaScript">
function Shape() {
this.borderWidth = 5;
}
function Square() {
this.edge = 12;
}
Square.prototype = new Shape;
myPicture = new Square;
alert(myPicture.__proto__);
alert(myPicture.borderWidth);
</SCRIPT>
The object myPicture
has an internal property, __proto__
, which is set to Shape
when the statement:
Square.prototype = new Shape;
is executed. The value of __proto__
instructs JavaScript where to look for properties, when local definitions are not available. In the example above, the property borderWidth
is not defined within the object Square
. The browser looks for the value of __proto__
, which is Shape
, and then fetches the value of its borderWidth
property. Being an internal property, most browsers will return undefined
when asked to alert __proto__
. Netscape 6, though, returns <object object>
.