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

调用javascript返回函数作为常规定义的方法?,javascript,javascript-objects,Javascript,Javascript Objects,我正在尝试学习javascript,我发现以下代码: 我不明白如何调用这些返回函数,因为在对象(即mycat.makeOlder())上明确定义了这些函数。 有人能解释一下吗? 顺便说一句,我知道oop java/c } 您已经创建了属于CatMaker类的一些函数 您可以在此处运行示例: 如果您只是在CatMaker范围之外声明函数,您可以像往常一样通过整个文件调用常规的“静态”函数 如果你没有创建类,但仍然想调用它,你可以考虑一个不是函数的,这是由 CasMeuts返回的纯对象的方法,所以你

我正在尝试学习javascript,我发现以下代码: 我不明白如何调用这些返回函数,因为在对象(即mycat.makeOlder())上明确定义了这些函数。 有人能解释一下吗? 顺便说一句,我知道oop java/c

}


您已经创建了属于CatMaker类的一些函数

您可以在此处运行示例:

如果您只是在
CatMaker
范围之外声明函数,您可以像往常一样通过整个文件调用常规
的“静态”函数


如果你没有创建类,但仍然想调用它,你可以考虑一个不是函数的

,这是由<代码> CasMeuts<代码>返回的纯对象的方法,所以你可以通过<代码> MyCAT//CudioValabeCon访问这些方法,你不调用示例中的方法吗?CatMaker函数返回一个对象,该对象由
{}
括号指定。该对象定义了一些方法,可以使用点表示法访问这些方法。因此,
mycat.makeOlder
引用了一个可以调用的函数。例如,在javascript中,您不在类中定义方法(属性中的函数),而是将它们放在对象中。
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