2014-05-06 90 views
0

我想與PhoneGap一起使用OO,我注意到我不能在他自己的方法中使用「this」對象的引用。Phonegap Javascript OO,這個參考

例:

var App = function() { 
    this.a = function() { 
     return true; 
    } 

    this.b = function() { 
     alert(this.a()); 
    } 
} 

在App.b()當我在瀏覽器上運行它正常工作,但作爲一個PhoneGap的應用(Android)沒有。有誰知道爲什麼?

我解決了這個有:

var App = function() { 
    var self = this; 

    this.a = function() { 
     return true; 
    } 

    this.b = function() { 
     alert(self.a()); 
    } 
} 

,並調用它

var app = new App(); 
app.b(); 

但是看起來不是一個好的做法。

謝謝。

+0

什麼是應該爲你在'App.b()'中成爲'this'?你不是錯過了一個'新'嗎? –

+0

是的,我打電話像,var app = new App(),然後app.b()。問題是,這在瀏覽器上正常工作,但作爲一個Android應用程序進行測試時,它什麼都不做。 –

+1

您在問題中顯示的代碼與您的評論非常不同。 –

回答

0

也許你正在尋找的代碼是:

var App = { 
    a: function() { 
     return true; 
    }, 
    b: function() { 
     alert(this.a); 
    } 
} 

編輯

如果你想實例化,那麼這樣做:

function App() {} 
App.prototype = { 
    a: function() { 
     return true; 
    }, 
    b: function() { 
     alert(this.a); 
    } 
} 
var app1 = new App(), 
    app2 = new App() 

app2.a() // true 
+0

我正在嘗試將它用作一個類。不幸的是,這樣我就不能實例化多個App對象。 –