javascript高級---惰性関数


紹介します
不活性関数は、関数の実行中に、関数が最初に成功したときに現在の関数をカバーし、成功した後の論理は実行されないことを示しています.
二、ケース
ブラウザの挙動の違いのために、いくつかの違いを処理しながら、その互換性を考慮しなければなりません.例えば、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文はもう実行しません.