我正在从头开始学习,并试图了解如何更好地从函数中获取值。请考虑以下示例。
/* 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!!');
};
同样,这也永远不会发生。
如果我想记录screenOrientationCheck
或viewportHeightCheck
它是undefined
,因为变量只存在于函数范围内。我明白了。将return
添加到以下任一功能中也无法解决问题。
/* Viewport Height Check */
function viewportHeight () {
var viewportHeightCheck = document.documentElement.clientHeight
console.log('viewportHeight = '+viewportHeightCheck);
return viewportHeightCheck;
};
我知道这是基本的东西。因此,我很抱歉花了你宝贵的时间来问这个。
我试图理解如何处理在函数中创建的值,并在代码中反复调用它们,而不是在运行时执行的匿名函数只能执行一次。
如果那里有人有勇气尽可能详细地回答这个问题,可能会有一个最后会记录Hooray!!
的例子,那将是一个好的结局。
答案 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>