我是靠谱客的博主 欢呼石头,最近开发中收集的这篇文章主要介绍This在函数调用,方法调用,构造函数调用以及call&apply调用分别指的对象是什么?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

解析器在调用函数的时候,都会向函数内部传递一个隐含的参数,隐含的参数就是this。
This指向的是一个对象,这个对象成为函数执行的上下文对象;

  1. 以函数的形式调用时,this永远指向window
  2. 以方法(打点)的形式调用,this就是调用方法的那个对象
  3. 以构造函数调用时,this是新创建的那个对象;
  4. 使用call和apply调用时,this是指定的那个对象;( 括号里面的参数是谁,this就指向谁)
<script type="text/javascript">
/*1. 以函数(fun())的形式调用时,this永远指window
*/
function fun1(){
console.log(this);
}
fun1();
/*
2. 以方法(obj打点)的形式调用时,this就是调用方法的那个对象
*/
var obj = {
name: "孙悟空",
sayName: fun1,
}
obj.sayName();
//Object { name: "孙悟空", sayName: fun1() }, this指向的就是obj;
/*3. 当以构造函数的形式调用时,this就是新创建的那个对象
*/
function Person(name, age){
this.name = name;
// this在这里指代新创建的对象per1
this.age = age;
}
//新创建的对象per1
var per1 = new Person("Monkey", 6);
console.log(per1);
/* 4. 使用call和apply调用时,this是指定的那个对象; */
function fun2(){
console.log(this.name);
}
var obj1 = {
name:"Pig"
}
fun2.apply(obj1);
//打印是pig,this指代obj1,
括号里面的参数是谁,this就指向谁
</script>

最后

以上就是欢呼石头为你收集整理的This在函数调用,方法调用,构造函数调用以及call&apply调用分别指的对象是什么?的全部内容,希望文章能够帮你解决This在函数调用,方法调用,构造函数调用以及call&apply调用分别指的对象是什么?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部