Size: a a a

2020 January 14

KB

Kolo Boracia in phpGeeks
js мимо точно, его я знаю
источник

S🛸

Sergey 🛸 in phpGeeks
Чего это мимо?
источник

KB

Kolo Boracia in phpGeeks
ну то есть что в js является замыканием я понимаю так же как и в php

var a = function() {// - это обычная функция, та же лямбда
console.log('a');
}
a();
==
var b = 1;
var a = function() {// - это обычная функция, та же лямбда
console.log(b); //но вот тут мы вызываем внешнюю переменную, и само это и является замыканием.. мы "замкнули" b в этой лямбда-функции
}
a();
источник

E

Eugene in phpGeeks
Kolo Boracia
ну то есть что в js является замыканием я понимаю так же как и в php

var a = function() {// - это обычная функция, та же лямбда
console.log('a');
}
a();
==
var b = 1;
var a = function() {// - это обычная функция, та же лямбда
console.log(b); //но вот тут мы вызываем внешнюю переменную, и само это и является замыканием.. мы "замкнули" b в этой лямбда-функции
}
a();
в js замыкание выглядит так:
function init() {
   var name = "Mozilla"; // name is a local variable created by init
   function displayName() { // displayName() is the inner function, a closure
       alert (name); // displayName() uses variable declared in the parent function    
   }
   displayName();    
}
init();
источник

S🛸

Sergey 🛸 in phpGeeks
ну в питоне тоже самое

with_lambda = lambda x: x * 2

FOO = 2
def withClojure(x):
 return x * FOO
источник

E

Eugene in phpGeeks
замыкание - это тоже функция
источник

S🛸

Sergey 🛸 in phpGeeks
Eugene
замыкание - это тоже функция
в php - да, в CS - нет
источник

KB

Kolo Boracia in phpGeeks
Eugene
в js замыкание выглядит так:
function init() {
   var name = "Mozilla"; // name is a local variable created by init
   function displayName() { // displayName() is the inner function, a closure
       alert (name); // displayName() uses variable declared in the parent function    
   }
   displayName();    
}
init();
это ничем не отличается от того примера что я написал
источник

E

Eugene in phpGeeks
Kolo Boracia
это ничем не отличается от того примера что я написал
а где в твоем примере в замыкании функция внутри функции?
источник

E

Eugene in phpGeeks
Sergey 🛸
в php - да, в CS - нет
в js тоже
источник

KB

Kolo Boracia in phpGeeks
ну блин,

function MEGAFUNCTION() {
var b = 1;
var a = function() {// - это обычная функция, та же лямбда
console.log(b); //но вот тут мы вызываем внешнюю переменную, и само это и является замыканием.. мы "замкнули" b в этой лямбда-функции
}
a();
}
MEGAFUNCTION();

это же сути не меняет
источник

E

Eugene in phpGeeks
Sergey 🛸
в php - да, в CS - нет
под CS ты подразумеваешь computer science?
источник

E

Eugene in phpGeeks
Kolo Boracia
ну блин,

function MEGAFUNCTION() {
var b = 1;
var a = function() {// - это обычная функция, та же лямбда
console.log(b); //но вот тут мы вызываем внешнюю переменную, и само это и является замыканием.. мы "замкнули" b в этой лямбда-функции
}
a();
}
MEGAFUNCTION();

это же сути не меняет
разный код, в смысле сути не меняет? вызывать глобальную переменную в контексте функции - это не замыкание
источник

S🛸

Sergey 🛸 in phpGeeks
Eugene
в js тоже
в js - нет
var b = 1;
function Foo() {
console.log(b);
}


замыкание есть а лямбды - нет
источник

KB

Kolo Boracia in phpGeeks
точно
источник

E

Eugene in phpGeeks
Sergey 🛸
в js - нет
var b = 1;
function Foo() {
console.log(b);
}


замыкание есть а лямбды - нет
А как в таком случае определение звучит? Я всегда думал, что замыкание в js - это "комбинация функции и лексического окружения, которое дает вам доступ к области видимости внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз при созданиии функции, во время ее создания."
источник

S🛸

Sergey 🛸 in phpGeeks
Eugene
А как в таком случае определение звучит? Я всегда думал, что замыкание в js - это "комбинация функции и лексического окружения, которое дает вам доступ к области видимости внешней функции из внутренней функции. В JavaScript замыкания создаются каждый раз при созданиии функции, во время ее создания."
ну это определение замыкания, а теперь найди определение лямбды
источник

KB

Kolo Boracia in phpGeeks
не, тут момент что лямбда же анонимная должна быть, а я привел который пример - она не анонимная
источник

KB

Kolo Boracia in phpGeeks
var b = 1;
var f = () => {
console.log(b);
};
f();
как-то так если я правильно понимаю надо..
источник

KB

Kolo Boracia in phpGeeks
Sergey 🛸
ну в питоне тоже самое

with_lambda = lambda x: x * 2

FOO = 2
def withClojure(x):
 return x * FOO
мне вот этот пример понравился.. спасибо за него
источник