我正在尝试使用构造函数和2个方法创建JAvascript对象。当我尝试使用以下代码时出错,我做错了什么?具体来说,它不允许我定义构造函数,如下所示。
var Feed = {
templateDOM: '',
function(tDOM) {
this.templateDOM = tDOM;
},
loadFeed: function(feedPage, feedsPerPage) {
...
},
showFeed: function(data, tDOM, destination) {
...
}
};
答案 0 :(得分:2)
您根本没有创建构造函数。它是一个普通的对象,只有你忘了为其中的第二个值提供属性名称。
如果你想创建一个构造函数,它看起来会更像这样:
function Feed(tDOM) {
this.templateDOM = tDOM;
}
Feed.prototype.loadFeed = function loadFeed(feedPage, feedsPerPage) {
};
Feed.prototype.showFeed = function showFeed(data, tDOM, destination) {
};
然后您可以调用它:
var my_feed = new Feed("some value");
myFeed.loadFeed("some value", "some other value");
答案 1 :(得分:1)
我不认为你接近可以把你带到你想要的地方。在您的情况下,您使用对象文字。当你已经创建了一个对象时,你将如何使用构造函数?
我认为以下更合适:
// Define a cosntructor
function TemplateDom(tDom){
this.templateDOM = tDOM;
}
然后将构造函数的原型添加到方法:
// Add to the prototype of your constructor the following two functions.
// So each object that will be created using this constructor would have
// defined also those two methods.
TemplateDom.prototype.loadFeed = function(feedPage, feedsPerPage) {
...
};
TemplateDom.prototype.showFeed = function(data, tDOM, destination) {
...
};
然后你可以创建一个如下所示的对象:
var templateDom = new TemplateDom("here you pass a dom value");
您可以使用loadFeed
和showFeed
这些函数,就像
templateDom.loadFeed("feedpage value","feedsperpage value");
templateDom.showFeed("data value","tDom value","destination value");