美文网首页程序员
web学习笔记-函数中this指针

web学习笔记-函数中this指针

作者: gerrywanggang | 来源:发表于2022-08-20 16:39 被阅读0次
    function makePerson(first, last) {
        return {
            first: first,
            last: last,
            fullName: function() {
                return this.first + ' ' + this.last;
            },
            fullNameReversed: function() {
                return this.last + ', ' + this.first;
            }
        }
    }
    s = makePerson("Simon", "Willison");
    s.fullName(); // "Simon Willison"
    s.fullNameReversed(); // Willison, Simon
    

    上面的代码里有一些我们之前没有见过的东西:关键字 this。当使用在函数中时,this 指代当前的对象,也就是调用了函数的对象。如果在一个对象上使用点或者方括号来访问属性或方法,这个对象就成了 this。如果并没有使用“点”运算符调用某个对象,那么 this 将指向全局对象(global object)。这是一个经常出错的地方。例如:

    s = makePerson("Simon", "Willison");
    var fullName = s.fullName;
    fullName(); // undefined undefined
    
    

    当我们调用 fullName() 时,this 实际上是指向全局对象的,并没有名为 firstlast 的全局变量,所以它们两个的返回值都会是 undefined

    相关文章

      网友评论

        本文标题:web学习笔记-函数中this指针

        本文链接:https://www.haomeiwen.com/subject/dhcmgrtx.html