美文网首页
this引用的指向

this引用的指向

作者: 耦耦 | 来源:发表于2017-12-05 19:43 被阅读3次

在javascript的函数中,除了函数声明时定义的形参之外,每个函数还可以接收另一个隐藏的参数:this,又称this引用。 这里就讲一下this的作用以及不同场景下它的不同指向。this的值(即它的指向)取决于调用的方式。在javascript中this指向大致有四种情况:

1.无任何前缀的函数调用时,this指向顶层对象或者叫全局对象,浏览器里是window(nodejs里是global)。

function fn(){
    console.log(this);
}
fn();                //打印结果为window{...}

2.方法调用的时候,this指向方法所在的对象

var robot = {
            name:"cup",
            say:function(){
                   console.log(this.name)
                }
            };
robot.say();        //打印结果为'cup'

3.构造函数里,this指向新生成的实例

function Robot(name){
    this.name = name;
    this.say = function(){
                console.log(this.name)
             }
}
var robot_1 = new Robot('bower');
robot_1.say()        //  打印结果为'bower'
var robot_2 = new Robot('cup');
robot_2.say()        //  打印结果为'cup'

4.apply/call调用的时候,this指向apply/call方法中的第一个参数

var robot_1 = {name:'cup'}
var robot_2 = {name:'bower'}

function say(){
  console.log(this.name)
}
say.call(robot_1)     //  打印结果为'cup'
say.call(robot_2)     //  打印结果为'bower'

apply/call是js语法中一种特殊用法,两者的用法十分相似,具体内容在本节后续内容进行详细介绍。

那么

function Robot(name){
    this.name= name;
    this.say=function(){
                console.log(this.name)
             }
}
var robot = new Robot('bower');
function say(){
    console.log(this.name)
}
say.call(robot)

相关文章

  • this引用的指向

    在javascript的函数中,除了函数声明时定义的形参之外,每个函数还可以接收另一个隐藏的参数:this,又称t...

  • this引用的指向

    在javascript的函数中,除了函数声明时定义的形参之外,每个函数还可以接收另一个隐藏的参数:this,又称t...

  • 指向指针的引用

    引用本身不是对象,因此不能定义指向引用的指针。但指针是对象,所以存在指针的引用。 要理解r的类型到底是什么,就简单...

  • weak和unowned

    一、循环引用 如图所示的情况中,john指向的对象强引用了unit4A指向的对象,而unit4A指向的对象又强引用...

  • java GC(基于Hotspot)

    什么是垃圾 没有任何引用指向的对象就是垃圾(循环引用时,没有其他引用指向也是垃圾) 如何查找垃圾 引用计数器: 每...

  • Java 的小白学习笔记三(数据类型和变量类型)

    Java两大数据类型 一、内置数据类型 二、引用类型 引用类型指向一个对象,指向对象的变量是引用变量。引用变量声明...

  • 引用计数与ARC

    一、引用计数原理引用计数就是表示多少个指针指向这个对象,当新的指针指向该对象时引用计数加1,当指针不再指向该对象时...

  • 深拷贝 & 浅拷贝

    浅拷贝:大多数对象都引用(指向)其他对象,不复制引用对象。新复制的对象只指向现有的引用对象。 例如 NSArray...

  • 多态的再理解

    对象的多种形态 1.引用形态 父类的引用可以指向本类的对象 父类的引用可以指向子类的对象 Animal d=new...

  • 引用分类,WeakHashMap,IdentityHashMap

    引用分类 强引用:StrongReference,引用指向对象,gc(Garbage Collection)运行时...

网友评论

      本文标题:this引用的指向

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