Reputation: 4121
I'm declaring an object "Members" in my app global variable:
var MyShulApp = MyShulApp || {};
MyShulApp.Members = (function () {
function Members() {
}
Members.prototype.getMembersList = function () {
var list = [{ name: "john", age: 90 }, { name: "kaly", age: 90 }, { name: "steve", age: 90}];
return list;
}
return Members;
})
I want to be able to call getMembersList(), so i do this:
var lst = oMembers.getMembersList();
but it's not working and I get undefined.
This works:
var membersList = oMembers.prototype.getMembersList();
What am I doing wrong?
EDIT(picture added):
Upvotes: 0
Views: 66
Reputation: 2990
You must first create an instance of that object:
function Members() {
}
Members.prototype.getMembersList = function () {
var list = [{ name: "john", age: 90 }, { name: "kaly", age: 90 }, { name: "steve", age: 90}];
return list;
}
var oMembers = new Members('Male');
To read more about this head to: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript
Upvotes: 1
Reputation: 288500
I don't know what is oMembers
.
But my guess is that you wanted to use a self-executing function:
var MyShulApp = MyShulApp || {};
MyShulApp.Members = (function () {
function Members() {}
Members.prototype.getMembersList = function () {
var list = [{ name: "john", age: 90 }, { name: "kaly", age: 90 }, { name: "steve", age: 90}];
return list;
}
return Members;
})();
Note I added the ()
at the end, to execute the function.
But you don't need that, you could just use
var MyShulApp = MyShulApp || {};
MyShulApp.Members = function Members() {};
MyShulApp.Members.prototype.getMembersList = function () {
var list = [{ name: "john", age: 90 }, { name: "kaly", age: 90 }, { name: "steve", age: 90}];
return list;
};
Upvotes: 1