Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为这个简单的场景实现封装?_Javascript_Design Patterns - Fatal编程技术网

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

Javascript 如何为这个简单的场景实现封装?,javascript,design-patterns,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> cons

我有一个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>

console.log(foo);//我不想在这里访问lib.js的foo
printFoo();//但是我希望这一行显示lib.js中foo的值

据我所知,您只希望lib.js中有可访问的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>

console.log(foo);//这里foo是未定义的
var Foo=printFoo();
Foo()//这里是控制台。Foo 90的徽标
//但是我希望这一行显示lib.js中foo的值

现在foo在foo()作用域下,所以访问的方式是封装printFoo函数

揭示函数模式?简单的生活?
<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>