Non smetteresti mai di essere sorpreso da JavaScript. In questo suggerimento rapido, ti mostrerò come utilizzare i metodi JavaScript, chiamata
e applicare
, chiamare le tue funzioni di altri oggetti. Non so cosa intendo? Iniziamo!
Ecco lo scenario: abbiamo due oggetti:
var joe = nome: "Joe", saluta: function (name) alert (this.name + "dice ciao a" + name); ; var jill = name: "Jill";
È semplice convincere Joe a salutare Jill:
joe.greet ( "Jill");
Ma come possiamo convincere Jill a salutare Joe? Non ha un metodo di saluto (e supponiamo che non possiamo / non / non dovremmo darglielo). Bene, perché tutto in JavaScript, comprese le funzioni, è un oggetto, ogni cosa può avere un metodo o una funzione che può essere chiamata da esso. Le funzioni sono date due metodi che ti permettono di chiamarle in diversi contesti.
Il contesto di un metodo è fondamentalmente l'oggetto che sarà Questo
quando viene chiamata la funzione. Nel nostro salutare
metodo, Questo
si riferisce all'oggetto joe
, perché è di questo che è parte.
Ora prova questo:
joe.greet.call (jill, "Joe");
Il chiamata
metodo sulle funzioni JavaScript consente di modificare il contesto della funzione. Il primo parametro che passeremo sarà il nuovo contesto: in questo caso, è così jill
. I parametri successivi sono i parametri della funzione che stai chiamando. In questo caso, "Joe" verrà passato a salutare
. Se lo esegui, riceverai una finestra di avviso con il messaggio "Jill saluta Joe".
C'è anche un applicare
metodo; l'unica differenza è che prende i parametri del metodo come una matrice, piuttosto che come parametri grezzi, a la chiamata
metodo.
joe.greet.call (jill, ["Joe"]);
Se hai difficoltà a ricordare se lo è chiamata
o applicare
quello prende la matrice, ricordi quello unpply
e unentrambi iniziano con "un.”
Grazie per aver letto!