spacer
Yehuda Shiran March 26, 2001
Sharing Local Variables between Subclasses
Tips: March 2001

Yehuda Shiran, Ph.D.
Doc JavaScript

Developer News
Google Going Native With Chrome
Mozilla Fixes Firefox Flaws as 3.5 Release Nears
Microsoft and Novell Still Bosom Buddies

An object is encapsulation of data (properties) and functions (methods). JavaScript also allows you to keep local variables within an object. The following function has two methods (setArea() and getArea()) and one local variable (area):

function Shape() {
  var area = 50;
  this.setArea = function(a) {area = a;};
  this.getArea = function() {return area;};
}

The setArea() method sets the local variables, while the getArea() method returns it. But keeping a local variable within an object may get very tricky when you inherit such class to two other classes. Once you set the local variable area by one subclass, it is also set for the other subclass. The following example has two constructors: Shape() and Square(), where Square()'s prototype is Shape(). We then define two instances of the Square class, shape1 and shape2. When shape1 sets the value of area to 100, shape2 will see the new area as well. Here is the code:

function Shape() {
  var area = 50;
  this.setArea = function(a) {area = a;};
  this.getArea = function() {return area;};
}

function Square() {
}

Square.prototype = new Shape();

var shape1 = new Square();
var shape2 = new Square();

shape1.setArea(100);

Now examine what shape2 is getting: the 100 that shape1 stored before.


People who read this tip also read these tips:

Look for similar tips by subject:

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
XML and PHP Simplified · Creating a ASP.NET Contact Form · Data Filtering with PHP
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Intel to Host Live Nehalem Q&A · 12 Tips to Troubleshoot Network File-Sharing · 10 Tips for Selling on Kijiji