您的變量是一個全局變量,因此可以從您的代碼中的任何位置訪問或設置它。在Web瀏覽器中,有許多全局變量是具有功能的對象。這些主要用於存儲數據。
另一方面,函數可用於執行代碼塊或返回對象。
例如,您可以定義一個函數從字符串中提取文本。此功能將從代表十六進制,RGB或RGBA格式顏色的字符串中解析R(紅色)G(綠色)B(藍色)部分。
function getRGB(color) {
var Rhex, Ghex, Bhex;
var R8bit = null;
var G8bit = null;
var B8bit = null;
var IsHex = false;
if (color.match(/rgba?\((\d{1,3}),\s(\d{1,3}),\s(\d{1,3})/)) {
Rhex = RegExp.$1;
Ghex = RegExp.$2;
Bhex = RegExp.$3;
}
else if (color.match(/^\s*#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\s*$/i)) {
Rhex = RegExp.$1;
Ghex = RegExp.$2;
Bhex = RegExp.$3;
IsHex = true;
}
else if (color.match(/^\s*#?([0-9a-f])([0-9a-f])([0-9a-f])\s*$/i)) {
Rhex = RegExp.$1 + RegExp.$1;
Ghex = RegExp.$2 + RegExp.$2;
Bhex = RegExp.$3 + RegExp.$3;
IsHex = true;
}
else {
return (NaN);
}
if (IsHex) {
R8bit = parseInt(Rhex, 16);
G8bit = parseInt(Ghex, 16);
B8bit = parseInt(Bhex, 16);
} else {
R8bit = parseInt(Rhex);
G8bit = parseInt(Ghex);
B8bit = parseInt(Bhex);
}
return [R8bit, G8bit, B8bit];
}
現在我可以使用該功能從其他功能,例如調低或通過增加或減少顏色的RGB分量顏色變淺:
function darken(color) {
var rgb = getRGB(Color);
return [Math.Max(rgb[0]-1,0), Math.Max(rgb[1]-1,0), Math.Max(rgb[2]-1,0)];
}
或者減輕顏色:
function lighten(color) {
var rgb = getRGB(Color);
return [Math.Min(rgb[0]+1,255), Math.Min(rgb[1]+1,255), Math.Min(rgb[2]+255,0)];
}
我也可以聲明函數的內部變量和函數:
function myColorHelper(e)
{
var el = $(e);
var myColor= function() { return el.css("color"); };
var myrgb = function() { return getRGB(mycolor);};
var makeDarker = function() {
var darker = darken(myrgb());
el.css("color", "rgb(" + darker[0] + ", " + darker[1] + ", " + darker[2]);
};
var makeLighter = function() {
var lighter = lighten(myrgb());
el.css("color", "rgb(" + lighten[0] + ", " + lighten[1] + ", " + lighten[2]);
};
}
插件和框架充滿了允許我們在代碼中使用功能的功能。例如,我可以使用這些函數使用jQuery來加深或減輕網頁上元素的顏色。
var helper = myColorHelper($('#myElement'));
helper.makeLighter();
helper.makeDarker();
你的第二個函數不返回任何東西。 它只是將值賦給全局變量。 –
我看到的大部分代碼都是使用您的第一個解決方案(使用return) – EntryLeveDeveloper