JavaScript中修改this指向的方法(更换调用对象)

    xiaoxiao2022-07-03  103

    主要有三种方法:call,apply,bind

    1、call

     obj.sex.call(obj1,"忠")

    var obj = { name:'张飞', sex:function(a){console.log(this.name,"无法确定性别!",a)} } obj.sex('飞') // 张飞 无法确定性别! 飞 var obj1 = { name:"黄忠" } obj.sex.call(obj1,"忠") // 黄忠 无法确定性别! 忠

    2、apply

    obj.sex.call(obj1,["忠"]) 

    var obj = { name:'张飞', sex:function(a){console.log(this.name,"无法确定性别!",a)} } obj.sex('飞') // 张飞 无法确定性别! 飞 var obj1 = { name:"黄忠" } obj.sex.call(obj1,["忠"]) // 黄忠 无法确定性别! 忠

    3、bind

    obj.sex.bind(obj1)

    var obj = { name:'张飞', sex:function(a){console.log(this.name,"无法确定性别!",a)} } obj.sex('飞') // 张飞 无法确定性别! 飞 var obj1 = { name:"黄忠" } var str = obj.sex.bind(obj1) str("忠") // 黄忠 无法确定性别! 忠

     

    最新回复(0)