実は代入するだけで別の機能にできます。
1 2 3 4 5 |
(function() { alert('test message'); alert = confirm; alert('test message'); // confirmが実行される })(); |
後処理前処理的なの追加できないかなーって思ってたらstackしてしまった。
1 2 3 4 5 6 7 |
(function() { alert('test message'); alert = function(msg){alert(msg)}; alert('test message'); })(); // Uncaught RangeError: Maximum call stack size exceeded |
alert実行の前後にbefore()とafter()を呼び出すように変更。呼び出しはいままでのalert()でいける。もうちょっといい感じに書きたい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
(function() { alert('test message'); var alertFunc = alert; var before = function() { console.log('before'); } var after = function() { console.log('after'); } alert = function(msg) { before(); alertFunc(msg); after(); }; alert('test message'); // before()が実行されてalertFunc()が実行されてafter()が実行される })(); |
以上小ネタでした。