请写出call(),bind(),apply()区别,并写出使用原型的方式构造一个call()方法? 请写出原型查找机制?

本文详细解释了JavaScript中`.apply()`,`.call()`,和`bind()`用于改变函数`this`指向的特性,以及它们在参数传递方面的不同。同时介绍了对象属性查找机制通过`__proto__`的工作原理。
摘要由CSDN通过智能技术生成

.apply、call、bind他们三个都能改变函数this的指向问题;

                // 2.apply、call这两个方法的主动调用,bind返回的是改变this指向后的新函数;

                // 3.传参的问题区别,call和bind都是直接传递参数,apply传递的是数组

Function.prototype.callNew = function(content,...sum){

                        console.log(!content);

                        if(!content|| context === null|| context === undefined){

                                context = window;

                        }

                        let fn = Symbol();

                        content[fn] = this;

                        return content[fn](...sum);

                }

1. 当访问一个对象的属性或方法时,首先查找这个对象自身有没有

                // 2. 如果没有就查找它的原型(也就是 __proto__ 指向的prototype 原型对象 )

                // 3. 如果还没有找到就查找原型对象的原型(Object的原型对象)

                // 4. 依次类推一直找到Object为止( null )

                // 5. __proto__ 对象原型的意义就在于为对象成员查找机制提供一个方向,或者说一条线路

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值