ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【学习笔记】JavaScript方法

2022-09-14 19:32:16  阅读:388  来源: 互联网

标签:getAge Wzt JavaScript 笔记 学习 birth var now age


【学习笔记】JavaScript方法

定义方法

什么是方法?

方法是把函数放在对象的里面,对象只有两个东西:属性和方法

var Wzt = {
    name:'wzt',
    birth:2000,
    age:function () {
        var now = new Date().getFullYear();
        return now - this.birth;
    }
}

其中age就是对象Wzt中的方法

调用对象的属性:Wzt.name,调用对象的方法:Wzt.age() 一定要带()

 

this

代码中的 this 代表什么? 可以试着把上面的代码拆开看看

function getAge() {
    var now = new Date().getFullYear();
    return now - this.birth;
}
var Wzt = {
    name:'wzt',
    birth:2000,
    age:getAge
}

把方法拿到外面来,变成函数,然后age调用这个函数

有两种调用方式:

Wzt.age()image-20220914191142587这样调是可以的

还有一种是直接调用getAge()

image-20220914191249558

结果却是NaN,原因是getAge()中的this无法指向

this默认指向调用它的那个对象,这里指向的是window,window是没有birth的,所以结果是NaN

 

apply

  • apply

    在js中可以控制this的指向

    它有两个参数,一个 是要指向的对象,一个是参数

    function getAge() {
        var now = new Date().getFullYear();
        return now - this.birth;
    }
    var Wzt = {
        name:'wzt',
        birth:2000,
        age:getAge
    }
    ​
    getAge.apply(Wzt,[])

    代码中this指向了Wzt,参数为空

    image-20220914191925072

 

标签:getAge,Wzt,JavaScript,笔记,学习,birth,var,now,age
来源: https://www.cnblogs.com/wztblogs/p/16694259.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有