2010-10-12 9 views
0

Je suis en train de trouver un moyen de la propriété surcharge comme cela se fait en PHP: http://www.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.membersJavascript Properties Surcharge PHP?

à savoir

var myobj = function() {} 
myobj.prototype.getProperty = function (propertyName) { console.log('Property Requested: ', propertyName); } 

var otherObj = function() {}; 

myobj.hello; // Property Request: hello 
otherObj.hello; // undefined 

Est-ce possible?

+0

C'est possible avec certains interpréteurs Javascript étendus, mais pas universellement. – Pointy

+0

Il serait utile si vous montriez tout le code. À l'heure actuelle, otherObj est une notation littérale d'une fonction vide. –

Répondre

0

Ce genre de chose ne peut être fait que dans ECMAscript 5 qui n'est pas supporté dans tous les navigateurs (par exemple IE). À l'aide de Object.defineProperty, vous pouvez créer des propriétés avec des fonctions d'accès. Vous pouvez ainsi implémenter une propriété telle que length dans des tableaux qui varient en fonction de l'état de l'objet.

Il ya une bonne présentation de Doug Crockford à propos de ces fonctionnalités et des liens vers des descriptions plus détaillées .