2016-03-08 3 views
1

ли это рекомендуется иметь доступный член массива на фабрике или услугах:доступные элементы в угловом заводе или услугах

app.factory('myFactory', ['$http', '$q', function ($http, $q) { 
    // accessible members 
    var factory = { 
     doSomething1: doSomething1, 
     doSomething2: doSomething2 
    }; 

    function doSomething1() { 
     // do something 
    }; 

    function doSomething2() { 
     // do something 
    }; 

    return factory; 
}; 

по сравнению с тем, как я делал это:

app.factory('myFactory', ['$http', '$q', function($http, $q){ 
    factory.doSomething1 = function() { 
     // do something 
    }; 

    factory.doSomething2 = function() { 
     // do something 
    }; 

    return factory; 
}; 

Изменить: Одна вещь, которую я только что узнал, - это второй пример, который использует выражение функции для doSomething1 & 2 (функция, хранящаяся в var), не будет поднята в верхней части порядка выполнения. JavaScript будет только поднимать прямые функции. Поэтому, если бы я имел оператор return перед выражениями функции, он возвращался бы undefined. В первом примере, однако, javascript будет поднимать функции до вершины, поэтому не имеет значения, где я верю. Джон Папа имеет большое объяснение здесь:

Angular Function Declarations, Function Expressions, and Readable Code

ответ

2

Первый вариант лучше потому что это более читаемым.

Здесь вы можете найти очень хороший стиль руководства Джона Papa: https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md

+0

HA! Это именно то, что я читаю сейчас, и что вызвало мой вопрос. Я просто не был уверен, что наличие необходимых членов там было необходимо. Теперь, когда я думаю об этом, если вы хотите воспользоваться подъемом, вам нужно использовать функции. Если я использую функции, они не будут доступны без объявления их, как в первом примере, верно? – steveareeno

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