В javascript, как я могу вызвать метод класса из другого метода в том же классе? - PullRequest
10 голосов
/ 10 февраля 2010

У меня есть это:

var Test = new function() {  
    this.init = new function() {  
        alert("hello");  
    }
    this.run = new function() {  
        // call init here  
    }  
}

Я хочу позвонить init в пределах пробега. Как мне это сделать?

Ответы [ 4 ]

7 голосов
/ 10 февраля 2010

Используйте this.init(), но это не единственная проблема. Не вызывайте new для своих внутренних функций.

var Test = new function() {
    this.init = function() {
        alert("hello");
    };

    this.run = function() {
        // call init here
        this.init();
    };
}

Test.init();
Test.run();

// etc etc
3 голосов
/ 25 апреля 2014

Вместо этого попробуйте написать так:

function test() {
    var self = this;
    this.run = function() {
        console.log(self.message);
        console.log("Don't worry about init()... just do stuff");
    };

    // Initialize the object here
    (function(){
        self.message = "Yay, initialized!"
    }());
}

var t = new test();
// Already initialized object, ready for your use.
t.run()
2 голосов
/ 10 февраля 2010

Попробуйте это,

 var Test =  function() { 
    this.init = function() { 
     alert("hello"); 
    }  
    this.run = function() { 
     // call init here 
     this.init(); 
    } 
} 

//creating a new instance of Test
var jj= new Test();
jj.run(); //will give an alert in your screen

Спасибо.

1 голос
/ 10 февраля 2010
var Test = function() {
    this.init = function() {
        alert("hello");
    } 
    this.run = function() {
        this.init();
    }
}

Если я не пропустил что-то здесь, вы можете удалить "новый" из своего кода.

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