如何为这个简单的场景实现封装?

时间:2016-02-29 22:05:41

标签: javascript design-patterns

我有一个js lib文件,其变量我不想直接用于其他文件。例如:

我的第一个名为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 个答案:

答案 0 :(得分:0)

据我了解你只想在lib.js中访问foo 所以

function printFoo(){
var foo = 90;
return function(){
    console.log(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函数