2013-03-27 59 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() ... 

如果你有详细的警告编译,你应该得到一个警告有关未定义的属性。