Prototype __proto__ Super And Delegation

Oct 30, 2007

One thing I haven't figured out about javascript is the treatment of
__proto__.

Inheritence, whether prototypes or class-based, is just a shorthand
form of delegation (leaving aside dynamic dispatch).

In Java a derived class serves as a wrapper for its superclass. The
derived class can easily access members of its super class using the
nice "super" keyword. Why, in javascript, is this functionality buried
in the unofficial "__proto__" property? It seems that it must have
been the intent of the language designer that explicitly accessing the
prototype chain is a bad thing for some reason, although I can't see
any reason.

By googling, you can find a lot of weird hacks to add "super"-like
functionality to javascript, although many of them look misguided to
me. It certainly seems that this is a commonly confusing part of the
language.

If __proto__ were an official part of the language, implementing a
decorator or proxy pattern would be nicely simplified compared to
class-based inheritence. The "before-and-after" style of AOP (which is
just another style of shorthand for delegation) would be possible
without any crazy tricks.

So, anyone care to set me straight? Why isn't __proto__ or something
like it a well defined part of javascript? Shouldn't it be?

View 6 Replies


ADVERTISEMENT

JQuery :: Load Method Super As Smartupdater OrPeriodicalUpdater (Prototype)?

Feb 27, 2011

I tried load method super as smartupdater orPeriodicalUpdater (Prototype). Now the problem is that I have to build a cycle (loop) and each time I have to change the time (that I take from database) so how method (function) can I use to load external code (example load()) modifying continuosly the timeout?

View 1 Replies View Related

JQuery :: Using '>' In Selector With Event Delegation?

Jan 9, 2012

Is there a subset of acceptable selector syntax available when using .on() ? I notice that given markup

<ol id="root">
<li id="a">A
<ol>

[code]....

View 5 Replies View Related

Event Capturing Bubbling Delegation

Sep 12, 2011

I just want to understand the concept of event bubbling, capturing and delegation. I have read a lot about them but still unable to fully understand them (capturing, bubbling, delegation).

View 1 Replies View Related

Event Delegation & Validation - AddEventListener Isn't Recognized In IE

Oct 21, 2010

the below code is for a form that is validated against some external (valid.js) functions. It's my first forray into Event Delegation and stupidly (testing in FF only just now) I didn't realise that the addEventListener isn't recognised in IE. Anyone got an idea which way I should look at sorting it. I am still searching and playing around but can't seem to find the right solution.

[Code]...

View 11 Replies View Related

Inheritace And Super.class Calling

Jul 20, 2005

I was wondering whether someone could shed some light on the following.
Using inheritance in Java one can override a function f() (or is it
overload?) in the child and then do:
public f() {
super.f();
...
}
in the child to first execute the parent stuff to be followed by the
additional child stuff.

Is there a way to accomplish this in JS as well and if so how?

I've already figured out the normal inheritance bit and complete
function overriding. I'm just looking for the above case.

View 5 Replies View Related

Prototyping Within Library - Extend Or Super-class The Native String Object

Apr 21, 2011

I have a few String prototypes such as String.prototype.EscapeReg = function () { return this.replace(/[-[]{}()*+?.,\^$|#s]/g, "\$&"); }; // Escapes characters for use with a regular expressionI also have my own class/ library which is used like this var adg = new AndyG_ns.ADG_Utils(); adg.StartClock('AndyClock','dd mmm yy hh:nn'); // etc.What I would like to do is to only add the prototype to my library (not to the global namespace). The end result I'm looking for is to use code such as:

var adg = new AndyG_ns.ADG_Utils();
var myString = new adg.AString();
var parsed = myString.EscapeReg();

In addition, I want to be able to also use/create my special string sub-class within my library. I suppose I'm saying that I would like to extend or super-class the native String object.

View 6 Replies View Related

Difference Between Object.prototype And Function.prototype?

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

How Come Object.prototype Inherits From Function.prototype

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

Passing Constructor Arguments Between Child And Super "class" Properly

Sep 17, 2011

Code:
function BaseController(el) {
var that = this;
this.defaultAction = function() {

[Code]....

What is the proper method here so that el will be defined in the super "class".? I know I saw something on stack overflow a couple of days ago but can not seem to find it again.

admin: Something is up with the code tags, why the system is double posting the code. Does HIGHLIGHT=JS not exists anymore? – That seemed not be working.

View 2 Replies View Related

With And Prototype

Aug 24, 2005

I can use "with" like this:

function MyObject(message)
{
this.message = message;
}
function _MyObject_speak()
{
alert(this.message);
}

with (MyObject)
{
prototype.speak = _MyObject_speak;
}


I was wondering why I can't use "with" like this:

with (MyObject.prototype)
{
speak = _MyObject_speak;
}

View 8 Replies View Related

Cracking Prototype.js

Jul 23, 2005

One of the complaints about prototype.js (google for it if you're not
familiar with it) is that it's poorly documented. I have this inkling
that the key to understanding prototype.js is in the bind function.

The problem with Javascript is that the "this" operator is poorly
overloaded and it is often hard to understand in the context of
object-oriented javascript

So, let's start with the definition:

Function.prototype.bind = function(object) {
var method = this;
return function() {
method.apply(object, arguments);
}
}

As I read this, it states that all functions (which are themselves
objects) will, in the future, have an associated method called "bind".
The function() function, so to speak, simply instantiates a Function
object with the parameter list and then evals the statement, sticking
the resulting execution-tree in the current code frame.

The "this" there refers to the function object associated with the call
to bind(), right? But the word "arguments" there refers to the
arguments passed to the function object *generated by* the call to
bind().

In every example within prototype.js, bind() is called either in a
constructor or within a method contexted to a javascript object, and is
always called with "this" as its argument, e.g.:

this.options.onComplete = this.updateContent.bind(this);

As I read the code it seems to be stating that the "this" object
referred to within bind()'d functions are being coerced into always
referring to the current instantiated object.

But isn't this always the case anyway? Is this a rather confusing
attempt to ensure "this" purity whereby the call

method.apply(object, arguments)

is forced to always have the reference to the containing object present?

I think I've got it. Bind() generates uniq functions that contain live
references to the objects to which they belong, such that the function
object can then be passed to setTimeout() or onMouseOver(), handlers
that accept functions but not objects.

View 8 Replies View Related

Object.prototype

Mar 15, 2006

Lets say we run: window.alert = function() { };

Is there anyway to 'restore' the original alert() method or is it gone
forever?

I know you can do window.alert = Window.prototype.alert, but lets say
you also set Window.prototype.alert = function() { } or lets say we're
in Opera, which doesnt have a Window "class".

View 3 Replies View Related

Prototype.js BindAsEventListener Without 'this'

Jun 5, 2006

I would like to set up an event observer outside of an object, so I
can't use this.bindAsEventListener. How can I pass the correct object
reference?

I tried something like this, and various other variations, but no luck.
This works when I set it up from inside the object, using "this.",

Event.observe(targetId,'click',targetId.select.bin dAsEventListener(this),false);

View 28 Replies View Related

Object As A Prototype.

Jan 11, 2007

I wanted to add an object as a prototype to separate my methods more
nicely, however, I ran into a couple of problems. Apart from the
obvious "scope" issues I found that any instances of my class shared
the objects methods and properties.

I realise (now) that this is actually how prototypes work, they share
functions and objects rather than create new instances of them for
every "class", but is there any way around it? (or shouldn't I be doing
things like this at all?) Code:

View 2 Replies View Related

Having More Than One Object Without Using Prototype

Jan 23, 2007

I am working on my own pop up calendar, mainly because the one I am currently using crashes the Safari browser at times.

So, I want to verify that what I am doing will work, in that I want to be able to have multiple calendars open at the same time, each independent of the other.

So, I start it off with:

var Calendar = {
dateSelected: null,
topPos:null,
leftPos:null,

somefunction:function(e) {
...
}
};

If I create more than one calendar object, will they have their own variables, in that the dateSelected, topPos and leftPos will be unique to that instance?

Or, is there a better way to do this, that is cross-platform.....

View 8 Replies View Related

Prototype Inheritance

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

JQuery Or Prototype ?

May 16, 2007

I want ask you if, for a web portal/application, is better prototype or Jquery? I don't want to innesc some type of flame, but after the announce that drupal use JQuery and that the new Wordpress
2.2 use Jquery I ask myself if my choice of use prototype.js is the bettere choice.

View 5 Replies View Related

Updating A Div With Prototype

May 17, 2011

I have <div id ="changeable"> with some html in it. I have a link that calls the function to replace the info in the div. The problem is that the "creative_development.inc" file is added to the top of the div and does not replace the content. How do I replace the content, and not just add content?

View 1 Replies View Related

This.prototype.addEvent

Nov 20, 2007

I'm trying to make an addEvent function that will automatically attach itself to the object using a class.

My question is how can I add the function so when I write obj.addEvent("click",myfunction); it will add the event?

Here's my current function:
this.prototype.addEvent = function(type,fn)
{
if(window.attachEvent)
this.attachEvent("on"+type,fn);
else if(window.addEventListener)
this.addEventListener(type,fn,false);
}

View 4 Replies View Related

IE And Prototype Problem

Dec 13, 2007

I need help to workaround the following problem:

First, about the environment:
- The web pages automatically generated.
- Pages can be inserted to each other
- When a subpage to be inserted is being generated, it does not know will it be inserted or not.
- That because each subpage uses the <script src=...> tags to load the script it needs.
- in the external script files I'm trying to protect it from repeated execution checking (if(){}) the value of a variable which is created after in the script.

Everything worked fine until I tried to use the .prototype to declare the method of my objects.

In the Internet Explorer, I got "Object does not support this property or method", on the access to a prototype function, because the prototype of my object was deleted by itself after the second load of the external script. Code:

View 4 Replies View Related

GetElementsByAttribute() For Prototype

Apr 9, 2006

This function will return an array of the elements in a page that contain a certain attribute, you can also give it a value that the attribute has to match, a tag name that the element has to match and a parent element.

I know there are other functions for doing this, but this one is written for use with the prototype (http://prototype.conio.net/) JavaScript library, in fact its really just a modified version of the getElementsByClassName() function that’s part of prototype.

document.getElementsByAttribute = function(attribute, value, tagName, parentElement) {
var children = ($(parentElement) || document.body).getElementsByTagName((tagName || '*'));
return $A(children).inject([], function(elements, child) {
var attributeValue = child.getAttribute(attribute);
if(attributeValue != null) {
if(!value || attributeValue == value) {
elements.push(child);
}
}
return elements;
});
}

Usage is pretty simple, this will return all elements with a width attribute:

View 2 Replies View Related

XML With Prototype And Geko ..?

Nov 13, 2005

I try to get a xml-response with prototype. for e.g. i have the following code:

<html>
<head>
<title>Test Ajax</title>
<script src="prototype-1.3.1.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var getXML = function()
{
var myAjax = new Ajax.Request(
"bsp.xml",
{
method:'GET',
onComplete:showXML
}
);
}

var showXML = function(r)
{
var names = [];
var root = r.responseXML.getElementsByTagName('personal').item(0);
// root
for (var i = 0; i < root.childNodes.length; i++)
{
var node = root.childNodes.item(i); // mitarbeiter
names.push(node.childNodes.item(1).firstChild.data);
}
$('xml').innerHTML = names.join("<br />");
}

//]]>
</script>
</head>
<body>

<p>
<a href="#" onclick="getXML();return false;">TEST</a>
</p>
<div id="xml">
</div>

</body>
</html>

xml-Data:

<?xml version="1.0" ?>
<personal>
<mitarbeiter>
<vorname>John</vorname>
<name>Brown</name>
</mitarbeiter>
<mitarbeiter>
<vorname>Matt</vorname>
<name>Blue</name>
</mitarbeiter>
</personal>

This works fine in IE but in Geko-Browser i got nothing back, because this browsers build the DOM with linebreaks and whitespace. Do you have any ideas what is wrong in my code and how to get propper DOM?

View 1 Replies View Related

Prototype + Grep

May 16, 2006

Having read through Sergio Pereira's Prototype documentation I came across the grep command within Enumerable object.

This is something that looks very interesting. Such as being able to quickly select only the elements you want using a regular expression.

But for the life in me I can seem to get it to work.

Anyone a bit more up to speed with Prototype care to have a look?

var elementList = Form.getElements("just-a-form");

nodes = $A(elementList);

var localElements = nodes.grep( /image/, function(node){
return node.id
});

View 4 Replies View Related

Ajax (prototype)

Oct 1, 2006

I'm using Prototype's AJAX to get the "alert" the response of a simple PHP script (a script that echoes a single line), but it doesn't seem to work. Here's the code:

function init()
{
var url = "http://localhost/script.php";
var myAjax = new Ajax.Request(
url,
{
onSuccess: showResponse
});
}

function showResponse(response)
{
alert(response.responseText);
}

window.onload = init;
The code has no errors, but still doesn't show the response even if i add an onFailure event handler. What could be wrong?

View 5 Replies View Related

Prototype - Get The IDs From .childElements()?

Dec 1, 2010

OK, simple script that currently takes an array of ID values (hard coded) and then iterates through them to fade in and out creating a slideshow.

The obvious problem is I have to hard code the number of DIVs in the slideshow. What I really want is the code to get the child elements of the container I pass it and then iterate through them dynamically.

[Code]...

View 7 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved