JS中这指向函数的调用方法有哪些

  

JS中这指向函数的调用方法有哪些?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

初学javascript总会对这指向感到疑惑,想要深入学习javascript,必须先理清楚和这个相关的几个概念.javascript中这个总是指向一个对象,但具体指向谁是在运行时根据函数执行环境动态绑定的,而并非函数被声明时的环境。除去不常用的与和eval的情况,具体到实际应用中,这指向大致可以分为以下4种。

作为对象的方法调用

当函数作为对象的方法被调用时,这指向该对象:

={var人   名称:& # 39;twy& # 39;   getName:函数(){   console.info(这个===人);//输出正确的   console.info (this.name);//输出twy   }   }   person.getName ();

作为普通函数调用

当函数作为普通的函数被调用时,非严格模式下这指向全局对象:

函数getName () {//非严格模式   console.info(这个===窗口);//浏览器环境下输出正确的   }   getName ();

严格模式下这为未定义:

函数getName () {//严格模式   “使用strict"   console.info(这个===窗口);//输出假的   }   getName ();

构造器调用

当新一个对象时,构造器里的这个指向新出来的这个对象:

函数人(){//构造函数   这一点。颜色=& # 39;白色# 39;;   }   var男孩=新人();   console.info (boy.color);//输出白色

调用或申请调用

用<代码> Function.prototype。应用或<代码> Function.prototype。调用可以动态改变传入函数的这指向:

//声明一个父亲对象,getName方法返回父亲的名字   var父亲={   名称:& # 39;twy& # 39;   getName:函数(){   返回this.name;   }   }//生命一个儿子对象,但是没有返回名字的功能   var的孩子={   名称:& # 39;水文学委员会# 39;   }   console.info (father.getName ());//输出twy//使用电话或应用将father.getName函数里这指向孩子   console.info (father.getName.call(儿童));//输出水文学委员会   console.info (father.getName.apply(儿童));//输出水文学委员会

感谢各位的阅读!看完上述内容,你们对JS中这指向函数的调用方法有哪些大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

JS中这指向函数的调用方法有哪些