* 実行

[3] [[コールバックの実行]]を参照。

* 文脈

[10] [[コールバック関数]]として定義された次の[[型]]があります。
[FIG(middle list)[
- [CODE(IDL)@en[[[Function]]]] [SRC[[[Web IDL]]]]
- [CODE(IDL)@en[[[VoidFunction]]]] [SRC[[[Web IDL]]]]
- [CODE(IDL)@en[[[MutationCallback]]]] [SRC[[[DOM Standard]]]]
- [CODE(IDL)@en[[[EventHandlerNonNull]]]] [SRC[[[HTML Standard]]]]
- [CODE(IDL)@en[[[OnBeforeUnloadEventHandlerNonNull]]]] [SRC[[[HTML Standard]]]]
- [CODE(IDL)@en[[[OnErrorEventHandlerNonNull]]]] [SRC[[[HTML Standard]]]]
- [CODE(IDL)@en[[[BlobCallback]]]] [SRC[[[HTML Standard]]]]
- [CODE(IDL)@en[[[FunctionStringCallback]]]] [SRC[[[HTML Standard]]]]
- [CODE(IDL)@en[[[PortCollectionCallback]]]] [SRC[[[HTML Standard]]]]
- [CODE(IDL)@en[[[NotificationPermissionCallback]]]] [SRC[[[Notifications API Standard]]]]
- [CODE(IDL)@en[[[FrameRequestCallback]]]] [SRC[[[HTML Standard]]]]
- [CODE(IDL)@en[IdleRequestCallback]]
- [CODE[CustomElementConstructor]]
- [CODE[PositionCallback]]
- [CODE[PositionErrorCallback]]
]FIG]

;; [7] [[イベントリスナー]]や [CODE(DOMi)@en[[[NodeFilter]]]]
は[[コールバックインターフェイス]]です。

;; [12] [CODE(JS)@en[[[Promise]]]] の[[コールバック]]は、
[[JavaScriptジョブの実行]]で処理されます。

[HISTORY[
[19] 当初 [[IDL]] に[[コールバック関数]]の概念がなかったので、
すべて[[コールバックインターフェイス]]として定義されていました。
]HISTORY]

* ハンドル

[SEE[ [[ハンドル][ハンドル (JavaScript)]] ]]

* 歴史

[1] [CITE[IRC logs: freenode / #whatwg / 20131109]]
( ([TIME[2013-11-10 18:07:17 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20131109>

[2] [CITE@en[Bug 19211 – The event handler processing algorithm talk about jumping to a code entry-point]]
( ([TIME[2013-11-10 18:14:45 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=19211>

[4] [CITE@en[Web Applications 1.0 r8880 Fix callback logic to reference Web IDL and use the right conventions.]] ([TIME[2015-01-16 05:52:00 +09:00]] 版) <https://html5.org/r/8880>



[13] [CITE@en[17713 – Exceptions thrown from event handlers should not be propagated]]
([TIME[2016-03-15 12:04:31 +09:00]] 版)
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=17713>

[15] [CITE@en[Merge pull request #113 from domenic/modernize-invoke]]
( ([[bzbarsky]]著, [TIME[2016-05-21 05:55:00 +09:00]]))
<https://github.com/heycam/webidl/commit/09c011d8de1077fe5991ceded97838650e376f6c>

[42] [CITE@en[24403 – WebIDL callbacks should probably default to pushing a new entry settings object]]
( ([TIME[2016-06-03 17:57:24 +09:00]]))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=24403>

[52] [CITE@en[27874 – Microtasks and callbacks run from a queued task]]
( ([TIME[2016-06-03 17:58:42 +09:00]]))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=27874>

[53] [CITE@en[25300 – WebIDL needs to be updated to new terminology around script settings objects]]
( ([TIME[2016-06-03 18:04:42 +09:00]]))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=25300>

[54] [CITE@en[Merge pull request #128 from domenic/prepare-callbacks]]
([[bzbarsky]]著, [TIME[2016-06-15 18:04:41 +09:00]])
<https://github.com/heycam/webidl/commit/91ad860e5d80ee03ed558ec7724a618fb42dc2f2>

[59] [CITE@en[Fix incumbent settings object definition and add examples]]
([[domenic]]著, [TIME[2016-06-15 17:49:40 +09:00]])
<https://github.com/whatwg/html/commit/f97c3e478654114bd4c9cc8587418a5519f9eb09>

[5] [CITE@en[Make quality an explicit argument for canvas image conversion]]
([[domenic]]著, [TIME[2016-08-27 03:42:08 +09:00]])
<https://github.com/whatwg/html/commit/7d25c4c2452b705220417ffb951c9b89e04ba50b>

[6] [CITE@en[Add the ability to construct a callback function]]
([[domenic]]著, [TIME[2017-03-27 13:42:03 +09:00]])
<https://github.com/heycam/webidl/commit/36b3646ac02654626b575ac9891b6e9d75adbfe7>

[8] [CITE@en[Reinstate active flag for iterators by ayg · Pull Request #359 · whatwg/dom]]
([TIME[2017-09-03 17:06:09 +09:00]])
<https://github.com/whatwg/dom/pull/359>

[9] [CITE@en[Make '''['''Exposed''']''' mandatory, remove '''['''PrimaryGlobal''']''' (#423)]]
([[tobie]]著, [TIME[2017-12-07 00:10:16 +09:00]])
<https://github.com/heycam/webidl/commit/d59937304702d033358b89fac5b5562c23b56096>

[11] [CITE@en[Editorial: be more consistent with callbacks]]
([[annevk]]著, [TIME[2018-03-16 19:16:51 +09:00]])
<https://github.com/whatwg/dom/commit/1c2ab7b21b9a229b09dc7f5dee1434cc470b5b53>

[16] [CITE@en[Editorial: be more consistent with callbacks by annevk · Pull Request #605 · whatwg/dom]]
([TIME[2018-03-17 18:03:47 +09:00]])
<https://github.com/whatwg/dom/pull/605>

[14] [CITE@en[Remove support for overloading callbacks (#690)]]
([[Ms2ger]]著, [TIME[2019-03-20 01:05:25 +09:00]])
<https://github.com/heycam/webidl/commit/b47c90c9c503b56d05bcfc30c12e2285ebe63a28>

[17] [CITE@en[Remove support for overloading callbacks by Ms2ger · Pull Request #690 · heycam/webidl]]
([TIME[2019-07-24 20:51:13 +09:00]])
<https://github.com/heycam/webidl/pull/690>

[18] [CITE@en[Stop claiming callback interfaces are interfaces]]
([[Ms2ger]]著, [TIME[2019-04-04 22:16:59 +09:00]])
<https://github.com/heycam/webidl/commit/b8ff6b125db0059ad015643074a4b80cae2b6063>