Որտե՞ղ են օգտագործվում փակումները:

Բովանդակություն:

Որտե՞ղ են օգտագործվում փակումները:
Որտե՞ղ են օգտագործվում փակումները:
Anonim

Փակումները հաճախ օգտագործվում են JavaScript-ում՝ օբյեկտների տվյալների գաղտնիության համար, իրադարձությունների մշակիչներում և հետադարձ կապի գործառույթներում, ինչպես նաև մասնակի հավելվածներում, պտտման և այլ ֆունկցիոնալ ծրագրավորման օրինաչափություններում:

Ի՞նչ է փակումը և ինչպե՞ս կօգտագործեիք այն:

Փակումը մի միջոց է ֆունկցիայի մեջ փոփոխականների հասանելիությունը պահպանելու այն բանից հետո, երբ այդ ֆունկցիան վերադարձրեց: … Փակման դեպքում այդ փոփոխականները մնում են մի որոշ ժամանակ, քանի որ ֆունկցիան վերադարձնելուց հետո փոփոխականներին հղում կա:

Որտե՞ղ կարող եք դիմել փակման իրական ժամանակի նախագծում:

Ստեղծվում է փակում, երբ ներքին ֆունկցիան ինչ-որ կերպ հասանելի է դառնում արտաքին ֆունկցիայից դուրս գտնվող ցանկացած շրջանակի համար: Վերևի կոդի մեջ արտաքին ֆունկցիայի անվան փոփոխականը հասանելի է ներքին ֆունկցիաներին, և ներքին փոփոխականներին մուտք գործելու այլ միջոց չկա, բացառությամբ ներքին ֆունկցիաների:

Ի՞նչ է փակման օրինակը:

Վերոնշյալ օրինակում արտաքին ֆունկցիայի Counter-ը վերադարձնում է IncreaseCounter ներքին ֆունկցիայի հղումը: IncreaseCounter-ը մեծացնում է արտաքին փոփոխական հաշվիչը մեկ: … Ըստ փակման սահմանման՝ եթե ներքին ֆունկցիան մուտք ունի արտաքին ֆունկցիայի փոփոխականներ, ապա միայն այն կոչվում է փակում: Հետևյալը փակում չէ:

Ո՞ր լեզուներն են փակվում:

Լեզուները, որոնք աջակցում են փակմանը (օրինակ՝ JavaScript-ը, Swift-ը և Ruby), թույլ կտան ձեզ հղում պահել շրջանակին (ներառյալ դրա մայրը):scopes), նույնիսկ այն բանից հետո, երբ բլոկի, որում հայտարարված են այդ փոփոխականները, ավարտվի գործարկումը, պայմանով, որ դուք ինչ-որ տեղ հղում եք պահում այդ բլոկին կամ գործառույթին:

Խորհուրդ ենք տալիս: