JavaScript: закрытия помогают - PullRequest
0 голосов
/ 02 февраля 2010

У меня есть пустой файл .js с этим кодом:

Cart.CheckoutNow = {
 ...
}

// Alias

if (typeof(CheckoutNow) === 'undefined') {
    CheckoutNow = Cart.CheckoutNow;
}
else {
    alert('CheckoutNow is already a variable in window.');
}

Как сделать так, чтобы код // Alias отображался в верхней части страницы, но он мог выполняться после объявления Cart.CheckoutNow?

Это бы сработало, но мне не нравится, что вы должны вызывать alert () внизу:

alias = function() {
 if (typeof(CheckoutNow) === 'undefined') {
  CheckoutNow = Cart.CheckoutNow;
 }
 else {
  alert('CheckoutNow is already a variable in window.');
 }
};

Cart.CheckoutNow = {
 ...
};

alias();

Ответы [ 3 ]

1 голос
/ 02 февраля 2010

Я не уверен, что это действительно то, чем вы хотите заниматься, но если вы уверены, то вам нужно:

window.setTimeout(function(){

  // Alias
  if (typeof CheckoutNow === 'undefined') {
    CheckoutNow = Cart.CheckoutNow;
  }
  else {
    alert('CheckoutNow is already a variable in window.');
  }

},0);

Cart.CheckoutNow = {
  ...
}
1 голос
/ 02 февраля 2010

Без объяснения того, почему вы пытаетесь это сделать, я догадываюсь, что это для лучшей организации кода. Если это так, я бы разбил ваш JavaScript на несколько файлов, примерно так, как показано на этом, и был бы добавлен на вашу страницу в следующем порядке:

// namespace.js
if (typeof Cart === 'undefined') {
    Cart = {};
}

// checkoutnow.js
Cart.CheckoutNow = {
    // module code here
}

// alias.js
alias = function() {
    // alias code here
}

// domready.js
onDocumentReadyFunction() {
    alias();
}
0 голосов
/ 02 февраля 2010

Вам необходимо определить псевдоним в функции и вызвать его как событие загрузки тела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...