从命名函数返回值

时间:2016-03-31 17:59:16

标签: javascript jquery

我正在从头开始学习,并试图了解如何更好地从函数中获取值。请考虑以下示例。

/* Screen Orientation Check */
function screenOrientation () {
    var screenOrientationCheck = ($(window).width() > $(window).height())? 90 : 0;
    console.log(screenOrientationCheck) ;
}
screenOrientation();

上面给出了屏幕方向。

/* Viewport Height Check */
function viewportHeight () {
    var viewportHeightCheck = document.documentElement.clientHeight
    console.log('viewportHeight = '+viewportHeightCheck);
};
viewportHeight();

这会给我视口高度。

但是现在如果我想使用这些功能的结果,我不知道该怎么做。

if ( viewportHeight() > 600 ) {
    console.log('Hooray!!');
};

例如,这永远不会激发。

if ( screenOrientation() === 90 ) {
    console.log('Hooray!!');
};

同样,这也永远不会发生。

如果我想记录screenOrientationCheckviewportHeightCheck它是undefined,因为变量只存在于函数范围内。我明白了。将return添加到以下任一功能中也无法解决问题。

/* Viewport Height Check */
function viewportHeight () {
    var viewportHeightCheck = document.documentElement.clientHeight
    console.log('viewportHeight = '+viewportHeightCheck);
    return viewportHeightCheck;
};

我知道这是基本的东西。因此,我很抱歉花了你宝贵的时间来问这个。

我试图理解如何处理在函数中创建的值,并在代码中反复调用它们,而不是在运行时执行的匿名函数只能执行一次。

如果那里有人有勇气尽可能详细地回答这个问题,可能会有一个最后会记录Hooray!!的例子,那将是一个好的结局。

2 个答案:

答案 0 :(得分:5)

您需要返回该值。这是一个有效的Jsfiddle

function getViewportHeight() {
    var viewportHeightCheck = document.documentElement.clientHeight
    return viewportHeightCheck;
};

if ( getViewportHeight () > 600 ) {
    console.log('Hooray!!');
};

答案 1 :(得分:1)

在您的特定情况下,这些函数应返回一个值,因此每次调用它们时,您都会根据页面尺寸获得一个值。

/* Screen Orientation Check */
function screenOrientation () {
  return ($(window).width() > $(window).height())? 90 : 0;
}


/* Viewport Height Check */
function viewportHeight () {
  return document.documentElement.clientHeight
};


$('#action').on('click', function() {
  $('#info').html('Screen Orientation: ' + screenOrientation() + '<br>' + 
                  'Viewport Height: ' + viewportHeight());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="info"></div>

<p>
  <button id="action">Get Values</button>
</p>