spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / javascript / column80


Object-Oriented Programming with JavaScript, Part II: Methods

Developer News
News Flash: Adobe Has iPhone Workaround
Adobe's Flash 10.1 Goes Mobile (Minus iPhone)
A Salute to Visionary CEOs

Sharing Private Data Among Subclasses

An object is an encapsulation of data (properties) and functions (methods). They are called public data members, because they are accessible in any instance of the same class. JavaScript also allows you to keep local variables within an object. They are called private data members, because they are not directly accessible. 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 the 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.

Next: How to protect private data elements

http://www.internet.com

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 >
Building a Banking Application Home Page with OOP · Mixing Scripting Languages · Review: phpFox, a Social Networking CMS with all the Bells and Whistles
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Enterprise 2.0: Social Networking in the Cloud · BroadSoft Marketplace Hastens Pace of Telephony Innovation · Review: HTC Hero for Sprint


Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: March 26, 2001
Revised: March 26, 2001

URL: http://www.webreference.com/js/column80/8.html