2016-05-12 5 views
0

Ссылаясь на this article от Брайана Брауна о различных способах определения функции Javascript, у меня есть вопрос о стандартах.Назначение собственности vs Переменная Назначение: что такое стандарт?

Скажите, что у вас есть несколько объектов и вы хотите дать каждому члену name значение "Programmer", каков более правильный или стандартный способ настройки этого параметра в Javascript, если вы ДОЛЖНЫ использовать функцию для получения информации?

Переменное назначение? Например:

var GetName = function() { 
     return {"name": "Programmer"}; 
} 

var newObj = GetName(); 

или Назначение недвижимости? Для примера:

var obj1 = { 
    GetName: function() { 
    obj2.name = "Programmer"; 
    }, 

    GetObj: function() { 
    return obj2; 
    } 
} 

obj1.GetName(); 
newObj = obj1.GetObj(); 

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

Предыдущее, переменное назначение, кажется, более чистым и простым. Но Property Assignment кажется более «собранным», возможно, безопасным. Хотя, я думаю, что не так много безопасности, когда речь идет о объектах и ​​функциях Javascript.

Итак, каков стандарт для этого типа функциональности?

+1

Ваш второй пример приведет к синтаксической ошибке. –

+0

@MikeC спасибо! Я считаю, что вы имеете в виду недостаток запятой, и я отредактировал ее, чтобы добавить ее. Если вы ссылаетесь на 'obj2' var, я не добавлял это, поскольку это более или менее фрагмент кода. –

+1

Нет, я имею в виду тот факт, что у вас есть функции без ключевого слова функции или списка параметров. 'GetObj: {return obj2; } 'должно быть' GetObj: function() {return obj2; } 'или с синтаксисом метода' GetObj() {return obj2; } '. –

ответ

0

IMO, вы должны создать простую функцию/конструктор и инициализировать объекты с этим.

function GetName(){ 
    this.name = "Programmer"; 
} 

и использовать его как

var obj1 = new GetName(); 
var obj2 = new GetName(); 
var obj3 = new GetName(); 

В JavaScript функции водрузили на вершине, для Объявление функции лучше, чем выражение функции.

+0

Мне сложно понять ситуации использования между объявлением функции и выражением функции. Когда вы будете использовать предыдущие против лестницы? –

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