跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

【学习笔记】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

 

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。