2016-02-29 53 views
0

我有一个js库文件,其变量我不想直接提供给其他文件。例如:如何为这个简单的场景实现封装?

我的第一个文件名为lib.js如下:

lib.js

var foo = 90; 

function printFoo(){ 
    console.log(foo) 
} 

在下面这就要求lib.js第二个文件,我想printFoo()工作正常,但我也想直接访问lib.js中的变量foo被阻止。我怎样才能做到这一点?

<script src="lib.js"></script> 
<script> 
    console.log(foo);// I don't want foo of lib.js being accessible here 

    printFoo();// but i want this line to display the value of foo from lib.js 
</script> 
+1

显示函数模式?一个简单的IIFE? – Bergi

回答

0

因为我知道你想在lib.js 所以

function printFoo(){ 
var foo = 90; 
return function(){ 
    console.log(foo) 
} 
} 

只有入店FOO的HTML将

<script src="lib.js"></script> 
<script> 
    console.log(foo);// here foo is undefined 

    var Foo = printFoo(); 
Foo()// here console .logo of foo 90 
// but i want this line to display the value of foo from lib.js 
</script> 

现在foo是根据FOO()范围,所以访问的方式是封装printFoo函数