概述
浏览器在调用函数时每次都会向函数内部传递进去一个隐含的参数,这个隐含的参数就是this
this指向的是一个对象,这个对象我们称为函数执行的上下文对象
根据函数的调用方式的不同,this指向不同的对象
1.以函数的形式调用,this永远都是window
function fun(){
console.log(this)
}
fun();// [object Window]以函数的形式调用
2.以方法的形式调用,this就是调用方法的那个对象
//创建一个对象
var obj = {
name:'zy',
sayName :fun
};
console.log(obj.sayName==fun);//true
obj.sayName();//[object Object] 以方法的形式调用
3.当以构造函数的形式调用时,this就是新创建的对象
构造函数就是一个普通的函数,创建方法和普通函数没有区别,不同的是创造函数习惯上首字母大写
构造函数和普通函数的区别就是调用方式的不同,普通函数就是直接调用,而构造函数需要使用new关键字来调用
构造函数执行流程:
1.立刻创建一个新的对象
2.将新建的对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象
3.逐行执行函数中的代码
4.将新建的对象作为返回值返回
使用构造函数创建的对象,我们也称为一类对象,也将一个构造函数称为一个类
我们将通过一个构造函数创建的对象,称为该类的实例
//相当于创建了一个Person类
function Person(name,age,gender){
this.name = name;
this.age = age;
this.gender = gender;
}
var per = new Person("zy",18,"女");//加new就是构造函数,不加new就是普通函数
console.log(per);
最后
以上就是勤奋芹菜为你收集整理的this的全部内容,希望文章能够帮你解决this所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复