当前位置:网站首页>this关键字,构造函数
this关键字,构造函数
2022-08-04 05:34:00 【初夏半微凉】
this
解析器在调用函数每次都会向函数内部传递进一个隐含的参数
这个隐含的参数就是this,this指向的是一个对象
这个对象我们称为函数执行的上下文对象,根据函数的调用方式的不同,this会指向不同的对象
- 以函数的形式调用时,this永远都是window
- 以方法的形式调用时,this就是调用方法的那个对象
- 以构造函数的形式调用时,this就是新创建的那个对象
function fun(a,b) {
console.log("a = "+a+", b = "+b);
console.log(this);
}
fun(123,456);
var obj = {
name:"karen",
sayName:fun
};
// 以方法的形式调用时,this就是调用方法的那个对象
obj.sayName(1, 2);
// 以函数的形式调用时,this永远都是window
fun();
构造函数
创建一个构造函数,专门用来创建一类对象
构造函数就是一个普通函数,创建方式和普通函数没有区别,不同的是构造函数习惯上首字母大写
构造函数和普通函数的区别就是调用的方式的不同
普通函数就是直接调用,而构造函数需要使用new关键字来调用
构造函数的执行流程
- 立刻创建一个新的对象
- 将新建的对象设置为函数中的this,在构造函数中可以使用this来引用新建的对象
- 逐行执行函数中的代码
- 将新建的对象作为返回值返回
使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类
我们将通过构造函数创建的对象,称为该类的实例
构造函数是类,通过构造函数创建的对象就是实例
function Person(name,age,gender){
this.name = name;
this.age = age;
this.gender = gender;
this.sayName = function(){
}
}
var per = new Person("karen",12,"男");
console.log(per);
边栏推荐
猜你喜欢
Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same
在线公众号文章内容转音频文件实用小工具
QT 出现多冲定义问题
树莓派 4 B 拨动开关控制风扇 Rasberry Pi 4 B Add Toggle Switch for the Fan
你要悄悄学网络安全,然后惊艳所有人
JUC锁框架——基于AQS的实现,从ReentrantLock认识独占和共享
软件:给大家推荐一款国产非常好用的效率软件uTools
U-Net详解:为什么它适合做医学图像分割?(基于tf-Kersa复现代码)
sql常用函数
Computer knowledge: desktop computers should choose the brand and assembly, worthy of collection
随机推荐
Uos统信系统 本地APT源配置
GRNN、RBF、PNN、KELM之间究竟有什么联系?
怎样才能转行成功?
数据库技巧:整理SQLServer非常实用的脚本
2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
缓动动画,有关窗口的一些常见操作,BOM操作
数据库sql的基础语句
有且仅有的三种处理JSON的方法
更改软件的默认安装位置
VMD combined with ISSA to optimize LSSVM power prediction
硬件描述语言Verilog HDL学习笔记之模块介绍
Based on the EEMD + + MLR GRU helped time series prediction
关于gopher协议的ssrf攻击
天鹰优化的半监督拉普拉斯深度核极限学习机用于分类
golang chan
Logical Address & Physical Address
QT QOpenGLWidget 全屏导致其他控件显示问题
沉浸式体验参加网络安全培训班,学习过程详细到底!
无一技之长学什么可以做到月入上万?
MATLAB 的ICEEMDAN分解代码实现