我是靠谱客的博主 勤奋芹菜,最近开发中收集的这篇文章主要介绍this,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

浏览器在调用函数时每次都会向函数内部传递进去一个隐含的参数,这个隐含的参数就是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所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部