2013-03-27 56 views
0

如何在HTML頁面中導出要在外部調用的對象的方法。導出對象的屬性

的JavaScript代碼:

my.namespace.FeedbackController = Class.create(); 
Object.extend(my.namespace.FeedbackController.prototype, { 
initialize:function(fid, fitem){ 
    this.fid = fid, 
    this.feedback_item = fitem; 
}, 
link_click : function(fstate) { 
    alert(fstate); 
} 
}); 
goog.exportSymbol('my.namespace.FeedbackController', my.namespace.FeedbackController); 
goog.exportProperty(my.namespace.FeedbackController, 'link_click', my.namespace.FeedbackController.link_click); 

在有多個項目,人們給出反饋的頁面。 的HTML代碼:

<script type="text/javascript"> 
    feedback_handlers = new Array(); 
    feedback_handlers[16] = new my.namespace.FeedbackController(16, 'useful'); 
</script> 
<a href="javascript:feedback_handlers['16'].link_click('useful');">Useful</a> 

當我點擊鏈接 '有用' 我得到類型錯誤的:feedback_handlers ['16' ] link_click不是一個函數。

我錯過了什麼嗎?

回答

1

在其中您擴展函數原型Object.extend沒有被封閉,編譯器識別的方式。你需要使用直接原型分配:

my.namespace.FeedbackController.prototype.initialize = function() ... 

如果你有詳細的警告編譯,你應該得到一個警告有關未定義的屬性。