jQuery.each()
JavaScriptの関数はObject 型であり、任意のプロパティを持つことが可能です。
例えば、jQuery.each() は、jQuery.each に代入された関数に過ぎません(静的メソッド)。
JavaScript
1jQuery.each = function each () {
2 // 処理
3};
Array.isArray()
静的メソッドという観点でいえば、Array.isArray() も同じ性質を持ちます。
ただし、Array.isArray() と jQuery.each() では、descriptor 値が異なりますので、厳密には異なる動作になります。
JavaScript
1console.log(Object.getOwnPropertyDescriptor(jQuery, 'each')); // {value: ƒ, writable: true, enumerable: true, configurable: true}
2console.log(Object.getOwnPropertyDescriptor(Array, 'isArray')); // {value: ƒ, writable: true, enumerable: false, configurable: true}
標準の Array.isArray() と同じ挙動にするには、Object.defineProperty() で isArray プロパティを定義する必要があります。
JavaScript
1Object.defineProperty(Array, 'isArray', {
2 value: function isArray (arg) {
3 // 処理
4 },
5 writable: true,
6 enumerable: false,
7 configurable: true
8});
少々話が脱線しましたが、まずは、jQueryから一歩離れて、任意の関数オブジェクトのプロパティに関数を代入して、挙動を確かめる事をお勧めします。
Re: Xyon さん
2019/04/27 06:39
退会済みユーザー
2019/04/27 09:14 編集
2019/04/27 10:16 編集
退会済みユーザー
2019/04/27 12:04