new的是函数不是对象,js中要注意(箭头函数的指向)

2024-02-19 21:48

本文主要是介绍new的是函数不是对象,js中要注意(箭头函数的指向),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最重要的就是判断函数是什么时候执行的。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>//箭头函数中的this是在定义函数的时候绑定,而不是在执行函数的时候绑定。意识是箭头函数定义的时候就已经确定了this的//指向了以后就不变了// var a = 11;// var obj = {//     a: 22,//     say: function () {//         console.log(this);//         console.log(this.a)//     }// }// obj.say(); //谁调用就指向谁// var b = 11;// var obj = {//     b: 22,//     // say: () => {//     //     console.log(this);//     //     console.log(this.b);//     // }//     haha: function () {//         console.log(this.b); //又指向了自己  对象的格式就是键值对//     }// }// obj.haha(); //输出的值为11.var c = 11function test1() {this.c = 22; //如果是通过new对象的方式,这个c就是对象的c和外面的c没有关系了//console.log(this);let d = () => {console.log(c);//console.log(this);//console.log(this.c + 'haha');};d();return 'hahahahaha'}var x = new test1(); //输出11,我这里其实new的只是构造方法,里面的this又指向了windows,输出11console.log(x); //它也不接返回值// x.d();// var x = test1(); //输出22// console.log(x);</script>
</head><body></body></html>

在这里插入图片描述
默认指向this和window指向的是同一个地址。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
函数执行this指向才有意义。

执行一个函数,就会有一个this执行(不管这个函数是不是嵌套在里面)

this指向可能相同,也可能不同。

在这里插入图片描述
只要看它是不是独立调用来确定this的指向。

在这里插入图片描述
在这里插入图片描述
判断this指向主要是判断函数是在哪里执行的。

在这里插入图片描述
在这里插入图片描述
父函数是有能力绝对子函数的this指向的。

在这里插入图片描述
在这里插入图片描述
当函数作为参数的时候,我们就可以把函数定义为回调函数。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
new返回的是实例之后的对象。

实例对象就是构造函数返回的this

new一个函数,生成一个实例化对象,这种函数就叫做构造函数。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
只要是对象就可以通过对象调用,call调用,new调用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
箭头函数是不允许作为构造函数使用的。

在这里插入图片描述
1:11:39
大佬:https://www.bilibili.com/video/BV1NT4y1j7xH?p=2

这篇关于new的是函数不是对象,js中要注意(箭头函数的指向)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/726073

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

python中update()函数的用法和一些例子

《python中update()函数的用法和一些例子》update()方法是字典对象的方法,用于将一个字典中的键值对更新到另一个字典中,:本文主要介绍python中update()函数的用法和一些... 目录前言用法注意事项示例示例 1: 使用另一个字典来更新示例 2: 使用可迭代对象来更新示例 3: 使用

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda