LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

this多个绑定规则优先级比较

freeflydom
2025年5月13日 11:7 本文热度 131

1. 默认规则的优先级最低

毫无疑问,默认规则的优先级是最低的,因为存在其他规则时,就会通过其他规则的方式来绑定this

2. 显示绑定优先级高于隐式绑定

代码测试:

vars = {
    name: "obj",
    foo: function() {
    console.log(this)
    }
}
// obj.foo()  //{name:"obj",foo:f}
// 1.call/apply的显示绑定高于隐式绑定
// obj.foo.apply('abc')   // "abc"
// obj.foo.call('abc')    //"abc"
// 2.bind 高于隐式绑定
// var bar = obj.foo.bind("cba")
// bar()   //"cha"
// 3. 更明显的比较
function foo() {
    console.log(this)
}
var obj = {
    name: "obj",
    foo: foo.bind("aaa")
}
obj.foo()  //"aaa"

3、new绑定高于隐式绑定

var obj = {
    name: "obj",
    foo: function() {
    console.log(this)
    }
}
// new的优先级高于隐式绑定
var f = new obj.foo()  //foo()

4、new绑定高于显示绑定

new关键字不能和apply或call一起来使用

// new的优先级高于bind
function foo() {
    console.log(this)
}
var bar = foo.bind("aaa")
var obj = new bar()   //foo()

结论:new绑定 > 显示绑定(apply/call/bind) > 隐式绑定(obj.foo()) > 默认绑定(独立函数调用)

​转自https://juejin.cn/post/7503407890351898636


该文章在 2025/5/13 11:07:43 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved