Javascript 在闭包中调用函数
我正试图用这种简单的方式结束页面:Javascript 在闭包中调用函数,javascript,Javascript,我正试图用这种简单的方式结束页面: page = function () { // define functions function clickAdd() { //.. return "55" }; var that = {}; // object to return that.clickAdd = clickAdd; return that; } 我的想法是,我应该能够调用clickA
page = function () {
// define functions
function clickAdd() {
//..
return "55"
};
var that = {};
// object to return
that.clickAdd = clickAdd;
return that;
}
我的想法是,我应该能够调用clickAdd作为
page.clickAdd();
page().clickAdd();
但是,我得到了页面。clickAdd不是一个函数。
我做错了什么?您只需执行outer函数即可将其返回值存储在
页面中
page = function () {
// define functions
function clickAdd() {
//..
return "55"
};
var that = {};
// object to return
that.clickAdd = clickAdd;
return that;
}()
您只需执行outer函数即可获得存储在页面中的返回值
page = function () {
// define functions
function clickAdd() {
//..
return "55"
};
var that = {};
// object to return
that.clickAdd = clickAdd;
return that;
}()
您只需执行outer函数即可获得存储在页面中的返回值
page = function () {
// define functions
function clickAdd() {
//..
return "55"
};
var that = {};
// object to return
that.clickAdd = clickAdd;
return that;
}()
您只需执行outer函数即可获得存储在页面中的返回值
page = function () {
// define functions
function clickAdd() {
//..
return "55"
};
var that = {};
// object to return
that.clickAdd = clickAdd;
return that;
}()
问题在于page
是函数,它返回一个具有clickAdd
属性的对象。您必须首先调用该函数:
page() // Call page ...
.clickAdd(); // which returns an object with a clickAdd() function
如果不再需要保留页面
函数,也可以调用匿名函数并将返回值设置为页面
:
page = (function () {
return {
clickAdd: function ()
{
return "55";
}
};
})();
现在,我们调用了匿名函数(注意末尾的()
),它返回一个带有clickAdd
函数的对象,该函数设置为变量页面
。我们现在可以打电话:
page.clickAdd();
本质上,page
现在就像一个静态类
您还可以考虑将函数设为对象文字的属性:
var page = {
clickAdd: function ()
{
return "55";
}
};
page.clickAdd();
问题在于page
是函数,它返回一个具有clickAdd
属性的对象。您必须首先调用该函数:
page() // Call page ...
.clickAdd(); // which returns an object with a clickAdd() function
如果不再需要保留页面
函数,也可以调用匿名函数并将返回值设置为页面
:
page = (function () {
return {
clickAdd: function ()
{
return "55";
}
};
})();
现在,我们调用了匿名函数(注意末尾的()
),它返回一个带有clickAdd
函数的对象,该函数设置为变量页面
。我们现在可以打电话:
page.clickAdd();
本质上,page
现在就像一个静态类
您还可以考虑将函数设为对象文字的属性:
var page = {
clickAdd: function ()
{
return "55";
}
};
page.clickAdd();
问题在于page
是函数,它返回一个具有clickAdd
属性的对象。您必须首先调用该函数:
page() // Call page ...
.clickAdd(); // which returns an object with a clickAdd() function
如果不再需要保留页面
函数,也可以调用匿名函数并将返回值设置为页面
:
page = (function () {
return {
clickAdd: function ()
{
return "55";
}
};
})();
现在,我们调用了匿名函数(注意末尾的()
),它返回一个带有clickAdd
函数的对象,该函数设置为变量页面
。我们现在可以打电话:
page.clickAdd();
本质上,page
现在就像一个静态类
您还可以考虑将函数设为对象文字的属性:
var page = {
clickAdd: function ()
{
return "55";
}
};
page.clickAdd();
问题在于page
是函数,它返回一个具有clickAdd
属性的对象。您必须首先调用该函数:
page() // Call page ...
.clickAdd(); // which returns an object with a clickAdd() function
如果不再需要保留页面
函数,也可以调用匿名函数并将返回值设置为页面
:
page = (function () {
return {
clickAdd: function ()
{
return "55";
}
};
})();
现在,我们调用了匿名函数(注意末尾的()
),它返回一个带有clickAdd
函数的对象,该函数设置为变量页面
。我们现在可以打电话:
page.clickAdd();
本质上,page
现在就像一个静态类
您还可以考虑将函数设为对象文字的属性:
var page = {
clickAdd: function ()
{
return "55";
}
};
page.clickAdd();
page在您的案例中是一个函数,因此您必须首先调用它:
page在您的案例中是一个函数,因此您必须首先调用它:
page在您的案例中是一个函数,因此您必须首先调用它:
page在您的案例中是一个函数,因此您必须首先调用它: