Javascript Can';t访问对象方法
我创建了一个名为NewsCalendar的准名称空间/类。我的目的是避免污染全局名称空间以及隐藏应该是私有的函数。但当我试图调用应该是公共方法的方法时,我得到“对象不支持此属性或方法” 这些评论是为了表明我对每个项目的预期 我试着像这样调用onLoad函数:Javascript Can';t访问对象方法,javascript,Javascript,我创建了一个名为NewsCalendar的准名称空间/类。我的目的是避免污染全局名称空间以及隐藏应该是私有的函数。但当我试图调用应该是公共方法的方法时,我得到“对象不支持此属性或方法” 这些评论是为了表明我对每个项目的预期 我试着像这样调用onLoad函数: NewsCalendar.onLoad(); 但这会导致“对象不支持此属性或方法”错误。我希望能够像使用命名空间一样使用NewsCalendar,并且能够通过使用NewsCalendar.propertyname或NewsCalendar
NewsCalendar.onLoad();
但这会导致“对象不支持此属性或方法”错误。我希望能够像使用命名空间一样使用NewsCalendar,并且能够通过使用NewsCalendar.propertyname或NewsCalendar.methodname()调用附加到此对象的任何变量/方法。您必须创建实例:
var calendar = new NewsCalendar();
calendar.onLoad();
请尝试以下设置:
var NewsCalendar = (function () {
var privatevar;
var onLoadHandler = function () {
//Do Stuff
};
function getWeekStart(date) {
//Do Stuff
}
return {
onLoad: onLoadHandler
};
})();
然后使用:
NewsCalendar.onLoad();
返回的{}
中的任何内容都是公共的。周围函数中的任何内容都只能由其内部的任何内容访问
我建议使用此设置的原因是,您似乎不想实例化多个对象,而是将其用作属性/方法库。您最终找到了答案吗?如果是,选择一个并接受它。否则,解释一下发生了什么事情你的工作原理。我只是不喜欢那样使用return。不是你的错,我只是觉得javascript语法有时候很难看。
NewsCalendar.onLoad();