Inheritance : Access To The SuperClass' Methods Via Prototype
Sep 20, 2005
What I am trying to achieve is an 'inherits' method similar to Douglas
Crockford's (http://www.crockford.com/javascript/inheritance.html) but
that can enable access to the superclass' priviledged methods also. Do
you know if this is possible ?
In the following example, I create an ObjectA (variable a), an ObjectB
which inherits ObjectA (variable b) and an ObjectC which inherits
ObjectA (variable c1). The 'toString ()' method of ObjectC refers to
the 'toString ()' method of ObjectA. This is possible because the
'Object.inherits ( superClass )' method adds a reference to the
superClass of an object in the object's prototype.
If I understood things correctly, the prototype is the same for all
objects of class ObjectC. Therefore, I should be able to only add the
reference to the superClass once. That is the purpose of the
'Object.initializedPrototypes' array : it keeps track of the objects
for which a reference to the superClass has been added to the
prototype.
However, when I create another instance of ObjectC (variable c2), its
prototype doesn't contain any reference to the superClass.
A workaround for this problem consists in adding a reference to the
superClass for each instance of the inferiting object (either by
bypassing the check to Object.initializedPrototypes or by adding the
reference to a priviledged member such as 'this.superClass' instead of
'this.prototype.superClass'). However, in terms of memory usage or of
"programming elegance", this seams to defeat the whole purpose of using
prototypes.
Here is the code, if any of you have got ideas...
View 2 Replies
ADVERTISEMENT
Mar 4, 2007
In my research in the javascript language I have encountered problems
with implementing prototype inheritance while preserving private
methods functioning properly. Here is an example: Code:
View 2 Replies
View Related
Aug 29, 2006
I'm looking to do something like this:
function superDuperObject(range) {
this.startContainer = new superDuperObjectStartContainer(range);
}
function superDuperObjectStartContainer(range) {
this.calculatedContainerNumber = doSomethingAndGetSomethingBack(range);
return range.startContainer
}
function doSomethingAndGetSomethingBack(range) {
return
someCoolInformationThatICalculateInThisFunctionTha tNeedsTheRange;
}
var myObject = new
SuperDuperObject(DOMRangeObjectThatIDefindedEarlie rInCode);
// Show me the startContainer of
"DOMRangeObjectThatIDefindedEarlierInCode"
alert(myObject.startContainer);
// Show me the calculatedContainerNumber that I get from a function
that does stuff with the range passed to it
alert(myObject.startContainer.calculatedContainerN umber);
View 1 Replies
View Related
Mar 19, 2010
I pulled out an old javascript object I created a while back a few days ago and I've been developing in Firefox ever since. Then I decided to test how it worked in other browsers and.....it works in none of them! Not chrome, not IE(7/8), not opera, and not safari.
It's built like this:
Code:
function myCalendar() {
//constructor function
}
myDiv.prototype.newMethod = function() {
[Code].....
It's really as simple as that....what's on the go? Do any JS experts out there know anything about this?
View 3 Replies
View Related
Mar 29, 2010
I have a class constructor, and after the constructor a prototype method associated with that class. I'm trying to call that method from within the class constructor, but it causes an error, indicating that the method is not a property of the class.Is it not possible to access prototype methods from within the constructor? If it IS possible, how do I do it?
View 8 Replies
View Related
Nov 24, 2011
I've previously written an image carousel with lightbox and to be honest forgot about it for quite a long time. I've just been tasked with making a few modifications (I wrote this code about 6 months ago)
Now, the problem I have is that I now need to call the internal method from the ligthbox plugin.
I've tried setting a reference to this like this but it just won't play ball. I can see that the ajax feed gets called but unfortunately I can't then access it.
[Code]...
View 3 Replies
View Related
Oct 5, 2011
I am pretty excited in creating multiple methods within a single plugin. But how do we access a particular set of objects from any given method? Here is what I have so far and all i want to do is access the objects 'location' and 'background' when the DOM is ready...
*jquery plugin*/
(function($){
//call multiple functions inside of one large plugin that do different things!
var methods = {
[Code].....
View 2 Replies
View Related
Mar 3, 2005
Suppose I have:
Code:
function A() { ... }
function B() { ... }
What's the difference between:
Code:
B.prototype = A
and
Code:
B.prototype = new A
?
View 5 Replies
View Related
Aug 17, 2006
Let's consider this example:
function Polygon(iSides) {
this.sides = iSides;
}
Polygon.prototype.getArea = function () {
return 0;
};
function Triangle(iBase, iHeight) {
Polygon.call(this, 3);
this.base = iBase;
this.height = iHeight;
}
Triangle.prototype = new Polygon();
Triangle.prototype.getArea = function () {
return 0.5 * this.base * this.height;
};
Here are my questions:
1/ "Triangle.prototype = new Polygon();" : Doesn't this line overwrite all the properties already defined in the Triangle function?
2/ "Triangle.prototype = new Polygon();" : Won't this same line assign this.sides an empty string (or undefined ??) if one considers that the polygon function has no arguments? Or does writing ...prototype = new SomeClass() only "touch on" the methods?
View 2 Replies
View Related
Nov 25, 2011
According to ECMAScript, the root of the prototype chain is Object.Prototype. Each object has an internal property [[Prototype]] that could be another object or NULL.... However, it also says that every function has the Function prototype object: Function.Prototype, it confused me, because a function is an object, for a function object, what is its function prototype and object prototype..For example:
var x = function (n) {return n+1;};
what is the relationships of x, Object.Prototype and Function.Prototype
View 5 Replies
View Related
Dec 14, 2009
I am trying to get to the bottom of javascript object, prototypes etc. I have a fairly good grasp of it, but I get confused the closer I get to the base object.prototype. FIrst of all, I was under the impression that all objects descend directly from Object. But some objects (like Array) seem to inherit properties and methods from the function.prototype. So does this mean that the chain is like this:
object -- function -- array Second, I noticed (on the mozilla javascript reference site that object.prototype inherits properties and methods from function.prototype and vice versa!? How can this be? I must be missing something important about understanding the chain?
View 24 Replies
View Related
Jul 23, 2005
I've discovered the following problem while building an APP:
/* Code Start **************************/
// Definition
function cClass_prototype_prototype()
{
this.array = new Array;
this.className = "cClass_prototype_prototype";
}
function cClass_prototype()
{
this.className = "cClass_prototype";
}
cClass_prototype.prototype = new cClass_prototype_prototype;
function cClass1()
{
this.className = "cClass1";
}
function cClass2()
{
this.className = "cClass2";
}
cClass1.prototype = new cClass_prototype;
cClass2.prototype = new cClass_prototype;
oClass1 = new cClass1();
oClass2 = new cClass2();
// Testing
alert(oClass1.array)
alert(oClass2.array)
oClass1.array.push(1);
alert(oClass1.array)
alert(oClass2.array)
/* Code End ****************************/
If you will execute this code you will see that pushing an value into
the first class instance array property cause changing value of the
second class instance array property.
Is it possible to have array values not connected to each other?
I would like to avoid defining "array" property in cClass1 and cClass2
(in this case it would work the proper way) and have them defined only
in third-level parent class cClass_prototype_prototype.
View 2 Replies
View Related
Jul 30, 2010
please bear with my noobishness, but i've been trying for many hours to understand what is going on behind this code:
[Code]...
actually construct an instance of Employee if the reference to its constructor has been replaced by an instance of Person that only contains name and age properties? how is Ken ever initialized by Employee constructor?
View 1 Replies
View Related
May 28, 2010
Basically i have a good experience and knowledge with prototype.js library and also at the same time i am willing to get deeper into jquery.
I very much use oops concept now a days in almost every problem i solve using javascript, and was doing with prototype's feature to create classes and objects. Since i am now looking to get deeper into jquery, i was looking to find similar feature in jquery as well. I suppose jquery must be having a feature to create classes and do inheritance programming, but i couldn't find the way. My question to the forum is, Is there any option/feature in jquery which helps us to create classes and objects of our own probably with the support of inheritance?
View 2 Replies
View Related
Dec 29, 2010
What are the benefits of prototypal inheritance over classical inheritance?
View 1 Replies
View Related
Oct 20, 2009
The first div in this example has the position property stated in the div itself.
The second has it stated in a separate style statement, and it doesn't get inherited, though another property from the same style statement DOES.
Firebug makes no complaints.
Is there a better way to refer to the jquery library files, so that you don't have to fix my pointers to my local library?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
[Code]....
View 2 Replies
View Related
Nov 17, 2009
I posted this once, but it disappeared, and I have no notifications that I did anything wrong. I read the rules before posting and wasn't breaking any so I am not sure why it disappeared but here goes again.
I am trying to learn Javascript (particularly OOP) from a series of screencasts by Douglas Crockford. I have developed a theoretical "game" to build to illustrate it to myself better, and learn by example.
I must be misunderstanding how inheritance works, because my code is not producing the results I thought it would. Here is what I have, followed by an explanation of my understanding. $(function()
[Code]...
View 11 Replies
View Related
Jul 23, 2005
Can Java classes/objects be used from within the javascript code on the
HTML page? I.e., can I call a Java method from the javascript function?
View 2 Replies
View Related
Sep 8, 2005
I have a javascript function that needs to access methods of a java
object(localTag). In my JSP I'm trying to include hidden fields for
the Strings returned from the getter method calls of the object like
so:
<html:hidden name="FrmCustomerHolding" property='<%=
"localTag.getTagName()" %>' />
<html:hidden name="FrmCustomerHolding" property='<%=
"localTag.getTagValue()" %>' />
If I can do something like this, what is the correct syntax and how do
I access this property in my javascript? When I have a hidden field
that is just a String, I access it in the javascript like
"document.getElementById("theString").value" and it works fine, but I
can't seem to find how to access the String value of a method call.
View 2 Replies
View Related
Mar 12, 2007
I am wondering if it is possible to get the response from a method
within a given page, and that function alone? Traditionally, I have
been getting the response from the Page_Load method of the targeted
page, but now I want the response from a particular method on the
target page:
Public Sub SomeCallback(ByVal sender As Object, ByVal e As EventArgs)
'RETURN XML FOR CALLBACK
End Sub
View 4 Replies
View Related
Jul 20, 2005
When you use addEventListener (or addEvent in IE) to call an object
method, does it call it with the correct this parameter?
The ECMAScript reference has a lot to say about the caller using
Function.prototype.call or Function.prototype.apply and passing the
correct this pointer for the context, but how does addEventListener
determine the correct this pointer. Or does it just punt and pass the
global context, thus making it impossible to refer to the object this
in an object method used as an event listener?
View 6 Replies
View Related
Jan 31, 2010
About when to use setter methods. For example, I have this code
Should this be used like this:
I think a better question is when to use the .each loop? Since, the first line of code I have works fine.
View 1 Replies
View Related
Mar 26, 2009
So I have this homework assignment where I need to get my application from switches to using methods to give me the same result. I usually am good in this class, but right now I am completely lost. Here is a piece of the code using switches:
/* Get Type of Math problem from the user */
input = JOptionPane.showInputDialog(null,"Enter the type of Math Problem"
+ "you would like to solve:
"
+ "Addition = 1
"
+ "Subtraction = 2
"
+ "Multiplication = 3
"
+ "Division = 4
"
+ "Enter the number of your choice: "); .....
I need to get this same result by using methods. I can use these method signatures:
public static int readProblemType(){}
public static int getAddProblem(int randomValue1 int randomValue2){}
public static int getSubProblem(int randomValue1 int randomValue2){}
public static int getMultProblem(int randomValue1 int randomValue2){}
public static int getDivProblem(int randomValue1 int randomValue2){}
public static int readAnswer(){}
Looking at what I need to do, how would I use public static int readProblemType(){} method to read the problem type? Or where should I start?
View 2 Replies
View Related
Apr 10, 2007
Programming assignment: Write a program for analyzing El Paso weather. This program must allow the user to enter dates followed by temperatures at these dates. Assume that we are only tracing one year, so the overall number of such dates does not exceed 366. Your must then output the following information:
*the average temperature;
*the list of all the days when the temperature was below freezing (i.e., below 32);
*the hottest temperature, and the list of all the days when the temperature was the hottest.
Main difference: In the previous assignment, following our advise, you stored the dates in one array (array of strings), and temperatures in another array (array of numbers).
For this new assignment, define a class Record whose objects contain two fields:
*a field date that contains the date, and
*a field temperature that contains the temperature.
Instead of using two arrays, use a single array of records (i.e., of objects of type Record).
The problem I'm having, is that I do not know how to read from two files and store the information into one array. (For example: with this assignemnt, I need to have one array with 366 fields, and in each field there needs to be a date and temperature.)
View 1 Replies
View Related
Jun 10, 2011
I have more of a programme design related question here: I have an object with 2 methods, those two methods are supposed to be called repeatedly one after the other (e.g. by setInterval())
window.setInterval(function() {
obj.method1();
obj.method2();
}, 100);
the problem with this code is that the execution time of those methods may increase depending on the processed data (an array with several hundred elements or more) so it may be, that the execution time of both methods exceeds the given repetition time. I could solve that by placing a call to the next function in each method, but I wonder if that is good design or not (tight coupling)
code for method2() is analogue
Obj.prototype.method1 = function ()
{
/* working code here */
[Code]....
View 10 Replies
View Related
Aug 2, 2011
How are methods masquerading as properties? Does this make methods more flexible as objects or plain functions?
View 6 Replies
View Related