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中这指向函数的调用方法有哪些大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。