Pasauliniai kintamieji griežto javascript režimu

Paprastas „JavaScript“ klausimas, pvz., Turiu „Angular app.js“, pavyzdžiui:

 'use strict'; var eventsApp = angular.module('eventsApp',[]); 

Aš perskaičiau, kad naudojant „naudoti griežtą“ failo pradžioje „Javascript“ gali apdoroti visus šio failo failus griežtu režimu, o tai reiškia, kad jis sukels klaidą, kai naudojamas visuotinis kintamasis (?), Bet kaip mes galime prieiti prie šio failo visų mūsų valdytojų ir paslaugų įvykioApp objektas, jei jis nėra pasaulinio masto?

12
31 июля '13 в 11:17 2013-07-31 11:17 Pavasaris nustatomas liepos 31 d. 13 val. 11:17 2013-07-31 11:17
@ 2 atsakymai

Neteisinga prielaida yra ta, kad griežtu režimu draudžiami visi pasauliniai kintamieji. Iš tikrųjų tik pasauliniai kintamieji, neapibrėžti, sukelia klaidą. (Tiesą sakant, jūs negalėjote nieko daryti, jei negalėjote naudoti jokių pasaulinių kintamųjų. Turi būti bent kažkas pasaulinio masto.)

Pavyzdžiui:

 "use strict"; var a = "foo"; var b; (function() { a = "bar"; // this is ok, initialized earlier b = "baz"; // this is also ok, defined earlier c = "qux"; // this is not, creating an implicit global })(); 

Kintamųjų a arba b nėra problema, bet c sukurs klaidą. Jūsų pavyzdyje neturėtų būti jokių problemų naudojant „ eventApp kintamąjį.

13
31 июля '13 в 11:22 2013-07-31 11:22 atsakymą pateikė JJJ liepos 31 d. 13 val. 11:22 2013-07-31 11:22

Jums nereikia nurodyti eventsApp , nes kampinis nurodys objektą, vadinamą „eventsApp“, kurį naudojate moduliui apibrėžti.

Taigi visuose kituose failuose galite naudoti:

border=0
 angular.module('eventsApp'); 

Norėdami pasiekti modulį.

4
31 июля '13 в 11:25 2013-07-31 11:25 atsakymą davė Davinas Tryonas liepos 13 d. 11:25 2013-07-31 11:25