2013-03-07 2 views
2

Я новичок в javascript, так что простите меня за задание такого новичка. Я пытаюсь изучить язык javascript, посмотрев примеры SPA, которые используют следующие библиотеки: durandal, knockout js & breeze js, sammy & требуют и пытаюсь использовать шаблон модуля, я думаю. я наткнулся другой синтаксис кода следующимПонимание различий между двумя синтаксисами Javascript

define(['services/logger'], function (logger) { 

    var model = "somedata" 
    var vm = { 
     activate: activate, 
     title: 'Details View' 
    }; 

    return vm; 
    function activate() { 
     logger.log('Details View Activated', null, 'details', true); 
     return true; 
    } 
}); 

и

define(['services/logger'], function (logger) { 

     var model = "somedata" 

    return { 
     activate: activate, 
     title: 'Details View' 
    }; 

    function activate() { 
     logger.log('Details View Activated', null, 'details', true); 
     return true; 
    } 
}); 

мои вопросы

  1. Есть ли преимущество использования одного синтаксиса над снова?
  2. Будет ли переменная «модель» в приведенном выше блоке кода иметь глобальную область видимости?
  3. Каков наилучший способ доступа к переменной «title» изнутри функций? следует ли использовать this.title?

Благодарим вас заранее.

ответ

1
  1. Синтаксис 2 легче читать. Вместо того, чтобы присваивать его переменной и сразу ее возвращать, она просто возвращает значение. Кроме этого, нет никакого преимущества.
  2. Переменная «model» не будет иметь глобальную область действия, как она определена в этом конкретном контексте.
  3. на объект, который возвращается, вы вызываете название по objName.title

Отвечает ли это на ваш вопрос?

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