如何访问另一个函数内的变量

时间:2017-01-08 11:04:35

标签: javascript function variables

我有一个计算屏幕宽度的功能

var screenWidth = jQuery(window).width();

function checkScreenSize()
{   
    screenWidth = jQuery(window).width();
}

jQuery(window).on("resize", checkScreenSize).resize();  

如何在另一个函数中使用此screenWidth?

编辑:

我想在这里访问此变量,例如:

function showContent() {
    if(screenWidth <= 1000)
    {
         console.log(screenWidth);
    }
}

4 个答案:

答案 0 :(得分:1)

由于screenWidth是在您提到的function之外声明的全局变量,因此您可以按原样访问它:

function foo() {
    console.log(screenWidth);
}

答案 1 :(得分:0)

您的全局screenWidth毫无用处......

如果您需要知道调整大小处理程序回调中的宽度,那么您需要调用jQuery(window).width()

&#13;
&#13;
function checkScreenSize(){
  var w = $(window).width()
  console.log(w)
}

jQuery(window).on("resize", checkScreenSize)

// .resize() is a shorthand for .on('resize' method
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)


当你定义变量函数时,它将是全局变量,你可以在其他函数中使用它!
你有这个问题吗?

<小时/> 您还可以访问:http://www.w3schools.com/js/js_scope.asp

答案 3 :(得分:0)

您可以通过在global范围内定义所述变量来实现此目的;如果在其他函数上下文中定义var screenWidth = ...,则无法从其他函数访问它。

使用全局是一个坏主意;但是,在许多情况下,您需要一些您需要从其他地方访问的变量值。在这种情况下,您可以构造一个定义良好的“Globals”容器,例如ie:

'use strict';        // strict mode    :: prevents nasty bugs
this.Main = this;    // super-global   :: refers `window` -or- `global`

Main.Globals = {screenWidth:null};

// your dynamic screen resizing code here sets the `Globals.screenWidth`
// now you have access to this anywhere

你也可以编写一些代码让这个Globals对象只能由某些函数写入,但这种技术可能超出了这个问题的范围。但考虑到此代码是团队中许多合作者的大型项目的一部分,这可能是一个好主意。