Javascript 函数,而无需每次重新声明
可以在javascript中的函数内声明函数。 比如: 然而,它可能不是最快的,因为每次调用my时,都必须重新声明支票。但在我的范围之外宣布支票将污染全球范围 如果my是一个构造函数my,则可以将check添加到其原型中,但不幸的是,这不适用于正常函数Javascript 函数,而无需每次重新声明,javascript,functional-programming,Javascript,Functional Programming,可以在javascript中的函数内声明函数。 比如: 然而,它可能不是最快的,因为每次调用my时,都必须重新声明支票。但在我的范围之外宣布支票将污染全球范围 如果my是一个构造函数my,则可以将check添加到其原型中,但不幸的是,这不适用于正常函数 解决此问题的便捷方法是什么?如果在调用my之间确实可以重用check,则可以在内联调用的作用域函数中创建my和check,并从中返回my: var my = function() { // <=== Scoping function
解决此问题的便捷方法是什么?如果在调用
my
之间确实可以重用check
,则可以在内联调用的作用域函数中创建my
和check
,并从中返回my
:
var my = function() { // <=== Scoping function
function my(){
console.log( check() ? "yes" : "no");
}
function check(){
return true;
}
return my; // <=== Returns `my`
}(); // <=== () calls scoping immediately
my();
不确定我是否正确理解了您的问题,但您可以将函数设置为返回的一部分,并仅在需要时调用它,例如:
function my(){
// Function code here
return {
check : function(){
return true;
}
};
}
var myVar = my();
console.log(myVar.check() ? "true" : "false");
var my = (function() { // <=== Scoping function
function my(){
console.log( check() ? "yes" : "no");
}
function check(){
return true;
}
return my; // <=== Returns `my`
})(); // <=== () calls scoping immediately
my();
function my(){
// Function code here
return {
check : function(){
return true;
}
};
}
var myVar = my();
console.log(myVar.check() ? "true" : "false");