不能對諸如document.createElement
,document.createTextNode
,[element].setSelectionRange
等方法進行「快捷方式」嗎?DOM方法的短變量
var c = document.createElement;
var div = c('div');
div.innerHTML = 'blah';
document.body.appendChild(div);
當執行上面的代碼螢火蟲控制檯返回錯誤:
未捕獲的異常:[異常... 「無法轉換的JavaScript變量」 nsresult: 「0x80570009(NS_ERROR_XPC_BAD_CONVERT_JS)」 位置: 「JS幀:: http://fiddle.jshell.net/_display/ :: ::線20」 的數據:無]
這發生在jsfiddle as provided here和靜默時的jsfiddle機智的外完成失敗h沒有錯誤。
下面的代碼工作正常,所以它僅僅侷限於DOM操作方法?
function long_function_name(prop)
{
alert(prop);
}
var c = long_function_name;
c('blah');
這對於壓縮起見實際例子:以
if (element.setSelectionRange)
{
element.setSelectionRange(pos, pos);
}
壓縮::
代替
var s = element.setSelectionRange || 0;
if (s) s(pos, pos);
即使'變種S = element.setSelectionRange;'就足夠了。如果該屬性沒有定義,它將返回'undefined',其值爲'false'。 – 2011-06-09 09:48:16
哦謝謝@Felix,很高興知道!這是一個恥辱,這是行不通的,因爲上下文問題,如下面的答案 – 2011-06-09 10:39:57