javascript高級---惰性関数
1145 ワード
紹介します
不活性関数は、関数の実行中に、関数が最初に成功したときに現在の関数をカバーし、成功した後の論理は実行されないことを示しています.
二、ケース
ブラウザの挙動の違いのために、いくつかの違いを処理しながら、その互換性を考慮しなければなりません.例えば、addEventListener、removeveveveveventListener、event、preventDefault、stopProp Propopopなど、現在のブラウザ環境に応じて対応するif条件文を実行し、互換性を実現します.
例えば、最も一般的なイベントオブジェクトの取得
*ソリューション:惰性関数
三、関数の書き換え
不活性関数
不活性関数は、関数の実行中に、関数が最初に成功したときに現在の関数をカバーし、成功した後の論理は実行されないことを示しています.
二、ケース
ブラウザの挙動の違いのために、いくつかの違いを処理しながら、その互換性を考慮しなければなりません.例えば、addEventListener、removeveveveveventListener、event、preventDefault、stopProp Propopopなど、現在のブラウザ環境に応じて対応するif条件文を実行し、互換性を実現します.
例えば、最も一般的なイベントオブジェクトの取得
function getEvent(event) {
let e
if (event) {
e = event
}else if (window.event) {
e = window.event
}else {
e = arguments.callee.caller.arguments[0]
}
return e
}
getEventを呼び出すたびに、現在のブラウザのサポート能力によってこのプロセスをチェックします.各if文を実行します.ブラウザが一つの方法をサポートするなら、その後の方法は必ずサポートされます.つまり、if文は後で実行する必要がないです.コードはもっと速く実行できます.*ソリューション:惰性関数
三、関数の書き換え
不活性関数
function getEvent(event) {
let e
if (event) {
e = event
getEvent = function (event) {
return event
}
}else if (window.event) {
e = window.event
getEvent = function (event) {
return window.event
}
}else {
e = arguments.callee.caller.arguments[0]
getEvent = function (event) {
return arguments.callee.caller.arguments[0]
}
}
return e
}
関数は初めて実行する過程で、条件が成立すれば、新しい関数は元の関数をカバーします.次の関数は実行する時、直接に新しい賦値の関数を呼び出します.後のif文はもう実行しません.