JS对象中的方法的this指向

复制代码
<script>
            // 对象里的方法写的是箭头函数,this始终访问全局
            var name = "xiaoming";
            var obj1 = {
                name: "xiaohong",
                getName: () => {
                    console.log(this.name);
                },
            };
            obj1.getName(); // xiaoming
            let getName1 = obj1.getName;
            getName1(); // xiaoming
            let getName11 = obj1.getName.bind(obj1);
            getName11(); // xiaoming

            // 对象的方法写的 function 声明,直接调用 this 指向对象本身,将调用的方法单独保存起来调用,this 指向全局,通过bind 改写 this 指向后,可以继续指向 对象本身
            var obj2 = {
                name: "xiaohong",
                getName: function () {
                    console.log(this.name);
                },
            };
            obj2.getName(); // xiaohong
            let getName2 = obj2.getName;
            getName2(); // xiaoming
            let getName22 = obj2.getName.bind(obj2);
            getName22(); // xiaohong
              obj2.getName.call(obj2); // xiaohong

</script>
复制代码

 

posted @   蓓蕾心晴  阅读(137)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示