JavaScript学习笔记(9)方法 、this

方法

 一个对象中绑定一个函数:称为这个对象的方法,来一个:
 写一个age()方法,返回xiaoming年龄:

var xiaoming = {
    name: '小明',
    birth: 1990,
    age: function () {
        var y = new Date().getFullYear();//调用当前年时间
        return y - this.birth;
    }
};

xiaoming.age; // function xiaoming.age()
xiaoming.age(); // 今年调用是25,明年调用就变成26了

 在方法内部,this是一个特殊变量,始终指向当前对象,也就是xiaoming这个变量。所以,this.birth 可以拿到xiaoming的birth属性。

另外写一个看看:

function getAge() {
    var y = new Date().getFullYear();
    return y - this.birth;
}

var xiaoming = {
    name: '小明',
    birth: 1990,
    age: getAge
};

xiaoming.age(); // 25, 正常结果
getAge(); // NaN

什么结果?
在这里插入图片描述
单独调用getAge() 返回了NaN,所以…这个this到底指向了谁?????答案是视情况而定!

 (1)如果以对象的方法形式调用,比如xiaoming.age(),该函数的this指向被调用的对象,也就是xiaoming,这是符合我们预期的。

 (2) 如果单独调用函数,比如getAge(),此时,该函数的this指向全局对象,也就是window。

现在this还有点迷糊,先沉淀沉淀,明天再看一遍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值