2014-11-17 5 views
1

Я нашел этот JS структуру кода и я задавался вопросом, как вызвать функцию перемещения() из внутри функции нагрузки:JS - вызов родительской функции

JS

function Start(data) { 

    this.move= function() { 
     .... 
    }; 

    function load(){ 
     // call move 
    } 

} 

ответ

2
function Start(data) { 
    this.move = function() { 
     .... 
    }; 

    function load(obj) { 
     obj.move(); 
    } 

    load(this); 
} 
1

Функция Start() должен быть создан как объект. Таким образом, вы использовали бы:

function Start(data) { 

    this.move = function() { 
    .... 
    }; 

    this.load = function(){ 
    // call move 
    this.move(); 
    } 
} 

var s = new Start(foobar); 
s.load(); 
+4

'load' является закрытым,' this' внутри него будет 'window' –

+0

Вы правы - обновили –

1

Это закрытие javascript. Я нашел this сайт, который будет полезен.

var move = function() { 
      alert("move"); 
     }; 

     load(); 
     function load() { 
      move(); 
     } 

Этот код будет alert Move только один раз.

4
function Start(data) { 
    var _this = this; 

    this.move = function() { 
     console.log('mode'); 
    } 

    function load() { 
     _this.move(); 
    } 

    // load(); 
} 

Start(); 
new Start(); 
1

Использование закрытий, которые могут быть достигнуты путем выполнения родительской ссылки;

function Start(data) { 
    var me = this; 

    this.move= function() { 
     .... 
    }; 

    function load(){ 
     me.move();// call move 
    } 

} 

Удачи.

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