Articles of chiusure

Come vengono rappresentate le chiusure e gli ambiti in fase di runtime in JavaScript

Questa è principalmente una domanda fuori dalla curiosità. Considera le seguenti funzioni var closure ; function f0() { var x = new BigObject() ; var y = 0 ; closure = function(){ return 7; } ; } function f1() { var x = BigObject() ; closure = (function(y) { return function(){return y++;} ; })(0) ; […]

Riferimento metodo istanza e parametri lambda

Ho difficoltà a capire la syntax per un riferimento al metodo, dove ci sono due parametri a e b , e il riferimento è a un metodo di a su b . Ad esempio capisco come Arrays.sort(personArray, comparators::compareByName); è equivalente a Arrays.sort(personArray, (o1, o2) -> comparators.compareByName(o1, o2)); perché in quel caso i parametri lambda corrispondono […]

Chiusure Javascript – domanda con ambito variabile

Sto leggendo il sito dello sviluppatore di Mozilla sulle chiusure e ho notato nel loro esempio errori comuni, avevano questo codice: Helpful notes will appear here E-mail: Name: Age: e function showHelp(help) { document.getElementById(‘help’).innerHTML = help; } function setupHelp() { var helpText = [ {‘id’: ’email’, ‘help’: ‘Your e-mail address’}, {‘id’: ‘name’, ‘help’: ‘Your full […]

Passaggio dei valori a onclick

Se creo un sacco di elementi HTML usando un ciclo, come for (i= 1; i < 100; i++) { var my_element = document.createElement ("td"); row.appendChild (my_element); my_element.onclick = function () {my_function (i)); } quindi quando si fa clic sull’elemento, il valore di i passato a my_function è sempre 100, indipendentemente da quale elemento numerico lo […]

setTimeout () all’interno della class JavaScript utilizzando “this”

Sto cercando di utilizzare setTimeout() all’interno di una funzione di class in JavaScript. Il setTimeout() dovrebbe triggersre un altro metodo nella stessa class, quindi la funzione che sto trasmettendo è scritta come window.setTimeout(“this.anotherMethod”, 4000) . Questo porta il problema: this riferimento all’object chiamante, nel caso di setTimeout() è window . Come posso utilizzare i contenitori […]

Come funzionano le chiusure dietro le quinte? (C #)

Sento di avere una comprensione abbastanza decente delle chiusure, come usarle e quando possono essere utili. Ma quello che non capisco è come funzionano effettivamente dietro le quinte nella memoria. Qualche esempio di codice: public Action Counter() { int count = 0; Action counter = () => { count++; }; return counter; } Normalmente, se […]

Restituendo le funzioni anonime da lapply – cosa sta andando storto?

Quando lapply a creare un elenco di funzioni simili usando lapply , trovo che tutte le funzioni nell’elenco sono identiche e uguali a ciò che dovrebbe essere l’elemento finale. Considera quanto segue: pow <- function(x,y) x^y pl <- lapply(1:3,function(y) function(x) pow(x,y)) pl [[1]] function (x) pow(x, y) [[2]] function (x) pow(x, y) [[3]] function (x) […]

jQuery dollar sign ($) come argomento di funzione?

Comprendo le chiusure di JavaScript, e ho visto questo fatto in JS nativo: (function () { // all JS code here })(); Ma cosa aggiunge la spezia jQuery? (function ($) { // all JS code here })(jQuery);

Chiusura in JavaScript – cosa c’è di sbagliato?

Sto cercando di fare il prossimo con la chiusura: function func(number) { var result = number; var res = function(num) { return result + num; }; return res; } var result = func(2)(3)(4)(5)(3); console.log(result); // 17 Devo ricevere 2 + 3 + 4 + 5 + 3 = 17 Ma ho ricevuto un errore: Uncaught […]

Chiusure in un ciclo for

Le chiusure in loop mi causano problemi. Penso di dover fare un’altra funzione che restituisca una funzione per risolvere il problema, ma non riesco a farla funzionare con il mio codice jQuery. Ecco il problema di base in una forma semplificata: function foo(val) { alert(val); } for (var i = 0; i < 3; i++) […]