我正在尝试使用命名空间来更好地组织我的网站非常复杂的代码。我有:
var myApp = {};
myApp.fp = {
brandCarousel: null,
init: function() {
// initialize brand carousel
this.brandCarousel = new Pluit.Carousel('brand-scroll-outer', { circular: false });
}
};
document.observe("dom:loaded", function() { myApp.fp.init(); });
我正在使用原型1.7和Pluit Carousel库。
如果我尝试通过键入:
来调用Pluit Carousels方法之一(moveNext)myApp.fp.brandCarousel.moveNext()
我收到JavaScript错误:
TypeError:对象#没有方法' moveNext'
在范围或命名空间方面,我有什么问题吗?如何访问此内部功能?
答案 0 :(得分:0)
您的特定示例没有任何内容看起来特别错误(除了它在myApp
和masApp
之间切换(错字?))。这是一个精简的虚拟示例,表明您的方法有效(并且您的问题必须在另一个位置):
var myApp = {};
myApp.fp = {
brandCarousel: null,
init: function() {
// initialize brand carousel
this.brandCarousel = new (function() {
this.moveNext = function() {
alert("moving!");
};
})
}
};
myApp.fp.init()
myApp.fp.brandCarousel.moveNext()
上述代码会按预期警告moving!
。