美文网首页
Javascript中this的指向

Javascript中this的指向

作者: 冯瑞_FR | 来源:发表于2016-10-08 01:19 被阅读0次

this的指向分为以下四种
1.作为对象的方法调用
2.作为普通函数调用
3.构造器调用
4.Function.prototype.call或Function.protype.apply调用

1.作为对象的方法调用

this指向该对象

var obj  = {
      a : 1,
      getA : function(){
          alert( this === obj);
          alert( this.a );//输出1
      }
}

2.作为普通函数调用

this指向全局对象

window.name = 'globalName';

var getName = function(){
    return this.name;
};

console.log( getName() );//输出globalName

//--------------------------------------------------------
//或者
//--------------------------------------------------------
window.name  = 'globalName';

var myObject = {
    name : 'sven;,
    getName : function(){
        return this.name;
    } 
};

var getName = myObject.getName;
console.log( getName() );//globalName;

3.构造器调用

javascript中没有类,但是可以从构造器中创建对象,同时也提供了new运算符,使得构造器看起来更像一个类。构造器的外表和普通函数一模一样,他们的区别在于被调用的方式。当用new运算符调用函数是,该函数总会返回一个对象,通常情况下,构造器里的this就会指向返回的这个对象。

var MyClass = fucntion(){
    this.name = 'sven';
    //构造器没有显式返回对象
    //return 'anne';
};

var obj = new MyClass();
alert( obj.name );//输出sven

4.Function.prototype.call或Function.protype.apply调用

两个函数可以动态改变传入函数的this

var obj1 = {
  name : 'sven',
  getName : function(){
    return this.name;
  }
};

var obj2 = {
  name : 'anne'
};

console.log( obj1.getName() );//sven

console.log( obj1.getName.call( obj2 ) );//anne

相关文章

  • 关于js函数中this的指向的问题

    @(javascript)[JavaScript中this的指向] 关于js函数中this的指向的问题 javas...

  • JavaScript中this指向

    文章较长,希望你耐心阅读并有所收获。 this指向 想必各位看客老爷搜索此问题,多多少少还是被this迷惑住了,今...

  • javascript中的this指向

    写在前面 本文转自深入浅出 JavaScript 中的 this 在java等面向对象的语言中,this关键字的含...

  • Javascript 中 this 的指向

    大家好,我是IT修真院武汉第10期学员,一枚正直、纯洁、善良的前端程序员。 今天给大家分享一下,修真院官网任务...

  • JavaScript中的this指向

    1.概念 在JavaScript中,this 是指当前函数中正在执行的上下文环境,因为这门语言拥有四种不同的函数调...

  • javascript中this的指向

    在面向对象的语言中(例如Java,C#等),this含义是明确且具体的,即指向当前对象。一般在编译期绑定。而在ja...

  • javascript中的this指向

    由于javascript中的this是在运行期绑定的,所以javascript中的this的含义很丰富。它可以是全...

  • javaScript中this的指向

    简单笔记: this永远指向调用它的对象,在严格模式下没有调用对象会指向undefined,非严格模式下指向全局变...

  • javascript中的this指向

    首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上...

  • Javascript中this的指向

    this的指向分为以下四种1.作为对象的方法调用2.作为普通函数调用3.构造器调用4.Function.proto...

网友评论

      本文标题:Javascript中this的指向

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