2015-07-11 64 views
0

我有一個疑問。這可能調用一個函數/方法存在於一個類中使用Javascript中的對象原型?如果可能的話,任何人都可以使下面的代碼正確。如何使用Javascript中的對象原型調用函數

(function(){ 
    window.Peer=function(){ 
     var peer=this; 
     peer.getMessage=function(){ 
      alert("hello!!! This is very good site.") 
     } 
    } 
})(); 


<button type="button" id="btn">Click here</button> 
<script> 
document.getElementById('btn').onclick=function(){ 
    Peer.prototype.getMessage(); 
} 

上面的代碼拋出error.Please給我一些想法來解決這個問題。

+0

你可以測試中控制檯檢查元素 –

+0

可以,因爲它使用'同行運行它(的getMessage())'或'Peer.call(的getMessage())' –

+2

FYI你得到,因爲你的錯誤沒有添加到Peer.prototype的功能 –

回答

1
(function(){ 
    window.Peer=function(){} 
    window.Peer.prototype.getMessage=function(){ 
     alert("hello!!! This is very good site.") 
    } 
})(); 
<button type="button" id="btn">Click here</button> 
document.getElementById('btn').onclick=function(){ 
    var peer = new Peer(); 
    peer.getMessage(); 
} 

你可以把對等作爲對象

+0

我知道這一點,但我想使用原型。 – satya

0

每天第一件事,我建議你閱讀更多關於JavaScript Object

getMessage是貼合peer變量,它具有局部範圍的功能。除非您創建了Peer的對象,否則無法從外部訪問它。

<html> 
<head> 
<script> 

(function(){ 
    window.Peer=function(){ 
     var peer=this; 
     peer.getMessage=function(){ 
      alert("hello!!! This is very good site.") 
     }; 
    } 
})(); 

window.onload=function(){ 
    document.getElementById('btn').onclick=function(){ 
     var peer = new Peer(); 
     peer.getMessage(); 
    }; 
} 
    </script> 
    </head> 

<body> 
    <button type="button" id="btn">Click here</button>  
</body> 
</html> 
相關問題