调用javascript返回的函数作为常规定义的方法?

时间:2015-12-01 09:46:01

标签: javascript javascript-objects

我正在尝试学习javascript,但我发现以下代码: 我不明白如何在对象上明确定义那些返回的函数(即mycat.makeOlder())。 谁能解释一下? 顺便说一句我知道oop java / c#。

function CatMaker(name) {
var age = 10;

//construct an object on the fly with three methods.
//All methods have access to age, but age cannot be
//directly accessed outside of this function.
return { 
    "sayHello": function () { //first method
        alert("Miaow");
    },
    "getAge": function (inCatYears) { //second method
        if (inCatYears) {
            return age * 7;
        }
        else {
            return age;
        }
    },
    "makeOlder": function () { //third method
        age++;
    }
};

}

     var mycat = CatMaker('Snuffles');
     alert(mycat.getAge(true)); //returns 70
     alert(mycat.makeOlder());
     alert(mycat.getAge(true)); //returns 77

1 个答案:

答案 0 :(得分:0)

您已创建了属于Class CatMaker的一些功能。

您可以在此处运行您的示例:http://jsfiddle.net/2tcjxepu/

如果您只是声明CatMaker范围之外的常规"static" functions范围内的功能,您可以像往常一样调用整个文件。

如果您没有创建课程但仍想调用它,则可以考虑singleton