creo un oggetto JavaScript come sottostante Codice:JavaScript: chiamare una funzione con tutto la funzione out di ritorno parentesi come stringa
var obj={
a : 10,
b : 20,
add : function(){
return this.a + this.b;
},
};
ho eseguito la funzione con questo codice obj.add
e restituire l'intera funzione come stringa come questo : -
function(){
return this.a + this.b;
ma poi provo per chiamare la funzione di nuovo compresa la parentesi come obj.add()
e restituire il valore di 30. Qui non ho potuto capire perché ottengo così diverso dal mettere su di chiamare la funzione con obj.add
e obj.add()
? Qual è la principale differenza tra chiamare una funzione di oggetti con parentesi e senza parentesi Può qualche aiuto del corpo ??
Non si può * * chiamata di una funzione senza parentesi. L'aggiunta di '()' è come si chiama una funzione. Senza '()', stai solo ottenendo la funzione stessa. In JavaScript, le funzioni sono solo variabili, come stringhe o intarsi o altro. –
'add' è [un oggetto' Function'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function). Quando lo usi senza parentesi, sei * probabilmente * convertendolo in una 'stringa' attraverso la [tipo coercizione] del chiamante (http://stackoverflow.com/questions/19915688/what-exactly-is-type- coercion-in-javascript) – blgt
ma come vedo negli strumenti dev i chiamando obj.add non ottengo l'oggetto, ma la stringa litterale. non lo capisco – ambes