JavaScript的回调函数内部this的指向问题以及四种绑定this指向的方法

JavaScript的回调函数内部this的指向问题以及四种绑定this指向的方法

1、常见回调函数内部的this指向问题

我们先看下面这段代码:

var o = {

age : 12,

say : function() {

        function callback() {

            return this.age;

        }

        func(callback);

    }

};

function func(callback) {

    var name = "Xiao Ming";

    console.log(name + " is " + callback() + " years old.");

}

o.say();

代码分析:这里创建了一个单例对象【o】和一个普通函数【func】,【o】中有一个方法【say】,在方法【say】里面调用了函数【func】,并传入了一个回调函数【callback】作为参数,【callback】中返回了对象【o】的属性【age】。当执行到函数【func】时,打印的结果如下:

console.log(name + " is " + callback() + " years old.");

//Xiao Ming is undefined years old.

我们可以看到【func】中执行的回调函数【callback】的返回结果是“undefined”而非“12”。

原因如下:函数内部的【this】指向于此函数的调用者(拥有者ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值