Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2011, 15h13   #1
Invité de passage
 
Inscription : août 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 12
Points : 3
Points : 3
Par défaut Syntaxe mystique dans SproutCore

Bonjour a tous,

Alors voila, si vous vous etes deja interesse au framework SproutCore et que vous avez suivi le guide, vous etes surement tombe sur ce bout de code:

Code :
1
2
3
4
5
6
7
8
9
10
11
 
// before SC.ready
 
Todos.StatsView = SC.TemplateView.extend({
  remainingBinding: 'Todos.todoListController.remaining',
 
  displayRemaining: function() {
    var remaining = this.get('remaining');
    return remaining + (remaining === 1 ? " item" : " items");
  }.property('remaining')
});
(celui ci ce trouve a cette adresse)

J'ai suffisament cherche sur internet mais je n'ai rien trouve.
Je comprends bien ici que l'on fait appelle a la methode SC.TemplateView.extend en lui passant en parametre un objet qui contient une methode displayRemaining.
Sauf que je ne comprend absolument pas ce que fait cette ligne de code: "}.property('remaining')" .

A qui apartient cette methode property, d'ou vient elle etc... ?

Si l'un de vous pouvait m'expliquer, parce que la je seche completement.

Merci et bon week end.
Costent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 14h07   #2
Membre régulier
 
Inscription : décembre 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 61
Points : 83
Points : 83
C'est une méthode de la fonction.
En javascript les fonctions sont des objets pouvant elles aussi avoir des propriétés et des méthodes.

Si tu consulte la doc tu verra que SproutCore augmente les fonctions avec plusieurs méthodes, dont la méthode property qui t'intéresse :

http://docs.sproutcore.com/?#doc=Fun...erty&src=false
TheGwy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 16h45   #3
Invité de passage
 
Inscription : août 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 12
Points : 3
Points : 3
Citation:
Envoyé par TheGwy Voir le message
C'est une méthode de la fonction.
En javascript les fonctions sont des objets pouvant elles aussi avoir des propriétés et des méthodes.
Lorsque je fais:
Code :
1
2
3
4
5
6
{
displayRemaining: function() {
// ...
// ...
  }.property('remaining')
}
Literalement en JavaScript, cela veut dire que displayRemaining est un objet que je definis puis j'applle la methode property de cet objet. Or ici, je n'ai pas cree cette methode.

Du coup, je cherche a savoir a qui appartient cet methode.
Costent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 17h07   #4
Membre régulier
 
Inscription : décembre 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 61
Points : 83
Points : 83
Comme dit plus haut, c'est une méthode de ta fonction.

Tu n'as pas créé cette méthode, c'est le framework Sproutcore qui l'a fait pour toi : implicitement toutes tes fonctions possèdent cette méthode.
TheGwy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 17h19   #5
Invité de passage
 
Inscription : août 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 12
Points : 3
Points : 3
Et comment on peut faire ca (creer des methodes par defaut aux fonctions) ?
Costent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 17h29   #6
Invité de passage
 
Inscription : août 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 12
Points : 3
Points : 3
C'est bon j'ai trouve.
Pour ceux que ca interesse:

Code :
1
2
3
4
Function.prototype.property = function(){
// ...
// ...
};
Merci pour ton aide TheGwy .
Costent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 17h34   #7
Membre régulier
 
Inscription : décembre 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 61
Points : 83
Points : 83
Comme pour tout objet, en javascript : tu la définie dans son prototype.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Function.prototype.go = function(){
 
    alert('go-go-gadgeto-gadget !');
};
 
(function(){
 
    // bla bla bla
    return true;
}).go();
 
document.getElementById.go();
document.getElementById.go.go.go();
Edit : derien
TheGwy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h33.


 
 
 
 
Partenaires

Hébergement Web