Question

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): enter image description here

Was it helpful?

Solution

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;
};

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top