Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.javascript > #7978

Re: oggetto.nomeFunzione("stringa").operaSullaFunzione()

From Alessandro Pellizzari <shuriken@amiran.it>
Newsgroups it.comp.lang.javascript
Subject Re: oggetto.nomeFunzione("stringa").operaSullaFunzione()
Date 2016-01-24 14:14 +0000
Message-ID <dgk4haFb88lU2@mid.individual.net> (permalink)
References <12069110-6044-4930-9e22-4304304ea799@googlegroups.com> <dgjb1pF5cgoU1@mid.individual.net> <3855b4c6-80be-4975-a9a2-e38e2fae4cc5@googlegroups.com> <dgk25sFb88lU1@mid.individual.net> <752d8b83-5456-41af-b8ed-4fd7043cd51b@googlegroups.com>

Show all headers | View raw


Il Sun, 24 Jan 2016 05:48:21 -0800, albaserver ha scritto:

> Il giorno domenica 24 gennaio 2016 14:33:50 UTC+1, Alessandro Pellizzari
> ha scritto:
>> jQuery ritorna quasi sempre un "oggetto jQuery" che wrappa altre cose,
>> tipicamente un array di elementi del DOM.
> 
> n.fn.init[3]
> 
> un array init dell'oggetto fn, proprietà dell'oggetto n. Al quale sono
> associate tutte le proprietà tipiche di jQuery che contengono delle
> funzioni per operarci (css, animate ecc.).
> 
> Ma nel source code di jQuery non ho capito come creano questo oggetto.

Qualcosa del genere:

var MyString = function(val) {
 this.val = val;
}

MyString.prototype.append = function(v2) {
 return new MyString(this.v + v2);
}

In questo modo wrappi sempre il risultato nell'oggetto stesso, e puoi fare

var pippo = (new MyString('p')).append('ip').append('po');
console.log(pippo.val);

(Codice non testato. "Fai come dico, non come faccio" :) )

Poi jQuery usa un trucchetto banale per evitare il new, qualcosa tipo

var MyString = function(val) {
 if (this == document) {
   return new MyString(val);
 } else {
   this.val = val;
 }
}

Per cui puoi fare

var pippo = MyString('p').append('ip').append('po');

(vedi disclaimer sopra)

Bye.

Back to it.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

oggetto.nomeFunzione("stringa").operaSullaFunzione() alcaseltzer <albaserver@gmail.com> - 2016-01-23 13:17 -0800
  Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() Alessandro Pellizzari <shuriken@amiran.it> - 2016-01-24 06:59 +0000
    Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() albaserver@gmail.com - 2016-01-24 02:06 -0800
      Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() albaserver@gmail.com - 2016-01-24 02:26 -0800
      Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() Alessandro Pellizzari <shuriken@amiran.it> - 2016-01-24 13:33 +0000
        Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() albaserver@gmail.com - 2016-01-24 05:48 -0800
          Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() Alessandro Pellizzari <shuriken@amiran.it> - 2016-01-24 14:14 +0000
            Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() albaserver@gmail.com - 2016-01-24 06:28 -0800
              Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-01-24 14:52 +0000
              Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() Alessandro Pellizzari <shuriken@amiran.it> - 2016-01-24 15:50 +0000
                Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() albaserver@gmail.com - 2016-01-24 10:45 -0800
                Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-01-24 19:08 +0000
                Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() albaserver@gmail.com - 2016-01-24 12:33 -0800
  Re: oggetto.nomeFunzione("stringa").operaSullaFunzione() 4ndre4 <4ndre4@4ndre4.com.invalid> - 2016-01-24 13:56 +0000

csiph-web