ducky_L

导航

js this是什么?

1、this:指当前执行上下文的一个属性,在非严格模式下,总是指向一个对象,在严格模式下可以是任意值。

  可以理解为:this 就是你call 一个函数时,传入的第一个参数,即谁调用了函数,this就指向谁。

2、函数调用转换:

func(p1, p2) 等价于
func.call(undefined, p1, p2)

obj.child.method(p1, p2) 等价于
obj.child.method.call(obj.child, p1, p2)

3、关于箭头函数和this:箭头函数没有this,箭头函数的this即为外层作用域的this,依次往上找,直到找到this的定义为止~

4、例子

        function Foo() {
            getName = function () { console.log(1) };
            return this;
        }
        Foo.getName = function () { console.log(2) };
        Foo.prototype.getName = function () { console.log(3) };
        var getName = function () { console.log(4) };
        function getName() { console.log(5) };

//以下分别输出什么?
       Foo.getName();
        getName();
        Foo().getName();
        getName;
        new Foo.getName();
        new Foo().getName();
        new new Foo().getName()
    

  输出结果:

  Foo.getName();//2
        getName();//4
        Foo().getName();//1
        getName;//f(){alert(1)}
        new Foo.getName();//2
        new Foo().getName();//3
        new new Foo().getName()//3

posted on 2023-04-12 15:47  ducky_L  阅读(18)  评论(0编辑  收藏  举报