2016-10-16 2 views

ответ

4

helloWorld является:

  • Не определено пока не вызвать функцию TestPlugin
  • Локальная переменная внутри функции, а не свойство объекта функции

Для того, чтобы быть свойством вам нужно будет определить, что нравится:

window['TestPlugin'] = function(){}; 
window.TestPlugin.helloWorld = function(){ 
    alert('hello world'); 
} 

Но поскольку TestPlugin ничего не делает, это не имеет особого смысла для того, чтобы быть функцией, так что вы могли бы также просто:

window['TestPlugin'] = { 
    helloWorld: function(){ 
     alert('hello world'); 
    } 
}; 

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

+0

Я предполагаю, что я более упростили пример слишком много. SocialPlugin также будет иметь пару переменных - var name; var userId; – jbassking10

0

Другие, чем [предполагаемая] опечатка - ответ такой: scope.

helloWorld is частный TestPlugin и поэтому не видно за пределами этого объема.

Один возможный способ сделать это будет доступно:

window['TestPlugin'] = function(){ 
 
    this.helloWorld = function(){ 
 
     alert('hello world'); 
 
    } 
 
    return this; 
 
} 
 

 
TestPlugin().helloWorld()