Вызов метода javascript изнутри объекта - PullRequest
2 голосов
/ 12 мая 2010

Я борюсь с методами в JavaScript.

  obj = function(){
    this.getMail = function getMail (){
    }
//Here I would like to run the get mail once but this.getMail() or getMail() wont work
    }


var mail = new obj();
mail.getMail();

Как сделать метод таким образом, чтобы я мог запустить его как внутри объекта, так и снаружи

Спасибо

Ответы [ 3 ]

4 голосов
/ 12 мая 2010

Когда вы определяете функцию, используйте имя только один раз, например:

obj = function(){
  this.getMail = function(){
    alert("bob");
  }
}

Теперь вы можете использовать this.getMail() там, вы можете увидеть рабочий пример здесь .

0 голосов
/ 12 мая 2010

здесь вы идете:

var obj = function() {

    function getMail() {
        alert('hai!');
    }

    this.getMail = getMail;
    //Here I would like to run the get mail once but this.getMail() or getMail() wont work

    getMail();
}

var mail = new obj();
mail.getMail();
0 голосов
/ 12 мая 2010

Рекомендуется создать надежное определение для вашего объекта. Создайте для него прототип, а затем, если вам когда-нибудь понадобится два или более, вы можете создать их экземпляры. Ниже я покажу, как создать прототип, добавить методы, которые вызывают друг друга, и как создать экземпляр объекта.

obj = function () {} // определить пустой объект

obj.prototype.getMail = function () {  
//this is a function on new instances of that object
   //whatever code you like
   return mail;
}

obj.prototype.otherMethod = function () { 
//this is another function that can access obj.getMail via 'this'
    this.getMail();
}

var test = new obj; //make a new instance
test.getMail();     //call the first method
test.otherMethod(); //call the second method (that has access to the first)
...