2015-09-21 4 views
-1

Pls см - http://jsfiddle.net/36qp9ekL/629/Угловые JS - Скрыть частные переменные из заводов

Я использую метод фабрики, так что я могу скрыть логику реализации, частный (PVT) переменные и все плюсы, что заводы предназначены для.

Если вы запустите код и увидите консоль, я могу просмотреть pvtvar1 и pvtvar2. Как я могу скрыть переменные pvt, детали реализации.

app.controller("mycontroller", function($scope, myfactory) { 

console.log(myfactory); 

}); 

Если бы вы могли сказать преимущества заводов над услугами, было бы полезно.

+0

Вы действительно должны включить соответствующий код из этой скрипки в свой вопрос. –

ответ

0

Как вы знаете, в javascript нет рядовых пользователей. Вы используете закрытие для создания недоступных переменных и функций. Это так же хорошо, как и вы. Консоль может показать вам (в зависимости от браузера) свойства, которые определены путем закрытия, но важно то, что эти свойства недоступны в вашем коде.

Преимущества услуги на заводе? Вы можете создать инъекционную службу из объекта js вместо функции, чтобы вы могли создавать службы, наследующие функциональность. Не очень полезно, поскольку инъекционная модель является заменой для наследования разными способами, но она по-прежнему является вариантом.

Я только пишу услуги вместо заводов, но я использую машинопись в моих проектах (который имеет рядовой;))

2
app.factory("myfactory", function() { 

    var pvtvar1= 3; 
    var pvtvar2 = 4; 
    return { 
     a:function(){ 
     return pvtvar2 + pvtvar1;} 
    } 


}); 

Вы объявляете объект и функцию в той же области действия переменных. Вот почему они показаны. Здесь я объявляю функцию в области объекта. Взгляните на это более подробно. http://toddmotto.com/mastering-the-module-pattern/

Смежные вопросы