随笔分类 -  手撕代码

摘要:let obj1 = { name: 'dog', array: [1, 2, 3], son: { name: 'dogSon' } } obj2 = obj1; obj2.name = 'cat'; obj2.son.name = 'catSon'; console.log(obj1.name) 阅读全文
posted @ 2022-03-08 18:03 辉太狼`
摘要:有了对call()、apply()的前提分析,相信bind()我们也可以手到擒来。 参考前两篇:'对call()函数的分析' 和 '对apply()函数的分析',我们可以先得到以下代码: Function.prototype.myBind = function(obj){ // 判断调用对象是否为函 阅读全文
posted @ 2022-03-08 10:09 辉太狼`
摘要:apply()函数,在功能上类似于call(),只是传递参数的格式有所不同。 dog.eat.call(cat, '鱼', '肉'); dog.eat.apply(cat, ['鱼', '肉']); 因此我们完全可以套用 '上一篇对call()的分析‘,得到下列代码。 Function.protot 阅读全文
posted @ 2022-03-08 09:04 辉太狼`
摘要:手写自己的call,我们要先通过call的使用,了解都需要完成些什么功能? call()进行了调用,是个方法,已知是建立在原型上的,使用了多个参数(绑定的对象+传递的参数)。 我们把手写的函数起名为myCall,obj作为形参承载传过来的第一个参数(即绑定的对象)。 Function.prototy 阅读全文
posted @ 2022-03-07 09:10 辉太狼`