美文网首页
this 指针指向

this 指针指向

作者: z1900 | 来源:发表于2017-11-09 15:55 被阅读0次
  1. this指针通常都是和函数一起使用
  2. 在函数外this指针指向window(一般不会用,只有在局部变量覆盖全局变量时才会使用)
    var test='global';
    function cover(){
        var test='scope';
        console.log(window.test, test);
    }//global,scope

在函数内:
3.1 函数在定义时,无法确定this指针的指向,只有在函数调用时,才能确定this指针的指向

3.2 在函数执行时,this指针的指向,默认情况下,取决于函数的调用方式
3.2.1 函数如果通过一个对象的方法 的方式调用,那么this指针,指向前面的对象(例如xxx.sayHi(),sayHi函数内的this指向xxx)
3.2.2 如果函数通过普通方式调用,那么this指针指向window(例如sayHi(),sayHi()函数内的this指向window)

3.3 可以人为的指定this指针的指向
3.3.1 调用一个函数的方法call,这个方法接受若干个参数,第一个参数是this指向的对象,后面的参数是需要传递给原函数的参数(函数是一个object类型,有方法和属性)
3.3.2 调用一个函数的方法apply,这个方法接受连个参数,第一个参数是this指向的对象,第二个参数是一个数组,数组的每个元素是传递给原函数的参数

 var person={
        my_name:'innerObject',
        sayHi:function(){
            console.log('Hi, I am ' + this.my_name)
        }
    }
    person.sayHi() //Hi, I am innerObject

    var my_name='globalVariable'
    function sayHi(){
        console.log('Hi, I am ' + this.my_name)
    }
    sayHi()//i, I am globalVariable

    var hello=person.sayHi;//把函数存入hello,person.sayHi并未调用,加()才是调用
    hello()//i, I am globalVariable

    person.hello=sayHi;
    person.hello() //Hi, I am innerObject  通过对象调用

    var human={
        name:'outer',
        person:{
            name:'inner',
            sayHi:function(){
                console.log('Hi, I am ' + this.name)
            }
        }
    }

    human.person.sayHi()//Hi, I am inner   this总是指向离它最近的那个对象

    document.querySelector('button').onclick=function(){
        console.log(this)
    } //取到的是一个对象,this指向button

    setTimeout(function(){
        console.log(this)
        //this指向window
    },1000)

    //调用全局的introduce函数,并让this指向detail对象
    function introduce(from, intend){
        console.log(this.name, from, intend)
    }

    var detail={
        name:'Adam',
    }

    introduce.call(detail, 'America', 'England')// Adam America England
    introduce.apply(detail, ['China', 'Russia'])// Adam China Russia

    var numbers=[2,3,9,5,10];
    console.log(Math.min.apply(Math,numbers))// 2

相关文章

  • 函数指针

    概念: 指针函数, 函数指针, 指针数组, 数组指针, 指向数组的指针, 指向函数指针数组的指针。

  • 指针运算

    指针的类型与指针指向的类型明显不相等 指针的类型表示指针自身的类型; 指针指向类型表示指针指向数据(内存)的类型。...

  • C语言(五)指针

    一、指针的概念 二、*号的含义 三、指针指向数组 四、指针指向的指针 一、指针的概念:pointer,指向一块地方...

  • 指针

    一. 指针指向的是对象的地址//函数指针:指针指向函数//指针函数:函数返回指针 二.

  • this 指针指向

    this指针通常都是和函数一起使用 在函数外this指针指向window(一般不会用,只有在局部变量覆盖全局变量时...

  • iOS开发中方法查找流程图

    实例对象的isa指针指向类对象,类对象的isa指针指向元类,元类的isa指针指向根元类,根元类的isa指针指向自己...

  • 回调函数

    函数指针 (1) 函数指针是指指向函数而非指向对象的指针。像其它指针一样,函数指针也指向某个特定的函数类型,函数类...

  • C++ 指向类的指针

    原文地址:C++ 指向类的指针 一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成...

  • [C++之旅] 16 对象指针/对象成员指针/this指针

    [C++之旅] 16 对象指针/对象成员指针/this指针 一、对象指针 对象指针指向堆中地址 对象指针指向栈中地...

  • iOS 判断NSString NSArray NSDiction

    nil:指向oc中 "对象" 的空指针Nil:指向oc中 "类" 的空指针NULL:指向 "其他类型" 的空指针,...

网友评论

      本文标题:this 指针指向

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