Suggerimento rapido chiamata di metodi JavaScript su altri oggetti

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!

Visualizza Screencast

Usando Call e Apply

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!