Javascript 我能';t访问IIFE中定义的变量
这是我的代码:Javascript 我能';t访问IIFE中定义的变量,javascript,Javascript,这是我的代码: (function() { var libby = {}; libby.greet = function() { console.log('heello'); } return libby; })(); 我正在学习创建JavaScript库。我在html中包含上述文件并加载页面,库也会加载,但当我在控制台中键入libby时,它会抛出错误“libby未定义”。您必须在变量中获取返回值 var libby = (function (
(function() {
var libby = {};
libby.greet = function() {
console.log('heello');
}
return libby;
})();
我正在学习创建JavaScript库。我在html中包含上述文件并加载页面,库也会加载,但当我在控制台中键入
libby
时,它会抛出错误“libby未定义”。您必须在变量中获取返回值
var libby = (function () {
var libby = {};
libby.greet = function () {
console.log('heello');
};
return libby;
}());
IIFE返回的值分配给全局变量libby
。请注意,内部libby
变量是私有的,在IIFE之外无法访问
局部变量也可以添加到全局
窗口对象上
(function () {
var libby = {};
libby.greet = function () {
console.log('heello');
};
window.libby = libby; // Make it global
}());
这就是你生命终结的全部意义。
您的库变量现在不会与其他库中的变量冲突。
如果你想使用你的库,你需要一个在IIFE之外的变量,它允许全局范围访问库函数
var somePrivateName = (function() {
var libby= {};
libby.greet = function()
{
console.log('heello');
} return libby;
})();
现在,您可以使用somePrivateName
访问库功能
somePrivateName.greet();
是的。对的将其附加到窗口对象效果很好:)