-
Pas de commentaires, veuillez le lire vous-même, veuillez passer à Dachang si vous l'avez maîtrisé.
-
Écris à la main un nouveau :
function _new(fn, ...args) { const obj = Object.create(fn.prototype) const ret = fn.apply(obj, args) return ret instanceof Object ? ret : obj }
-
Écrire un appel à la main :
Function.prototype._call = function (context, ...args) { let context = context || window context.fn = this const res = context.fn(...args) delete context.fn return res }
-
Écrivez une demande à la main :
Function.prototype._apply = function (context, arr) { let context = context || window context.fn = this let res if (!arr) { res = context.fn() } else { res = context.fn(...arr) } delete context.fn return res }
-
Écrivez une reliure à la main :
Function.prototype._bind = function (context, ...args) { let self = this return function (...rest) { return self.apply(context, [...rest, ...args]) } }
-
Écriture manuscrite d'une instance de:
function _instanceof(left, right) { let right = right.prototype let left = left.__proto__ while(true){ if (left === null) { return false } if (left === right) { return true } left = left.__proto__ } }
-
Écrivez une réduction à la main :
Array.prototype._reduce = function(fn, value) { const arr = this let acc = value || array[0] const startIndex = value ? 0 : 1 for (let i = startIndex; i<arr.length; i++) { acc = fn(acc, arr[i], i, arr) } return acc }
Une série d'écriture manuscrite de Xiaofeng 1 (nouveau / appel / appliquer / lier / instanceof / réduire)
Je suppose que tu aimes
Origine blog.csdn.net/weixin_38653273/article/details/115263696
conseillé
Classement