我正在尝试学习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
答案 0 :(得分:0)
您已创建了属于Class CatMaker
的一些功能。
您可以在此处运行您的示例:http://jsfiddle.net/2tcjxepu/
如果您只是声明CatMaker
范围之外的常规"static" functions
范围内的功能,您可以像往常一样调用整个文件。
如果您没有创建课程但仍想调用它,则可以考虑singleton