Javascript对象的构造函数

时间:2015-10-14 07:15:01

标签: javascript

我正在尝试使用构造函数和2个方法创建JAvascript对象。当我尝试使用以下代码时出错,我做错了什么?具体来说,它不允许我定义构造函数,如下所示。

var Feed = {

    templateDOM: '',

    function(tDOM) {
        this.templateDOM = tDOM;
    },

    loadFeed: function(feedPage, feedsPerPage) {
        ...
    },

    showFeed: function(data, tDOM, destination) {
        ...
    }
};

2 个答案:

答案 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");

您可以使用loadFeedshowFeed这些函数,就像

一样简单
templateDom.loadFeed("feedpage value","feedsperpage value");
templateDom.showFeed("data value","tDom value","destination value");