- 博客(9)
- 收藏
- 关注
原创 Promise
第一个回调函数是Promise对象的状态变为Resolved时调用,第二个回调函数是Promise对象的状态变为Rejected时调用。这两个函数都接受Promise对象传出的值作为参数。如果Promise.resolve方法的参数不是具有then方法的对象(又称thenable对象),则返回一个新的Promise对象,且其状态为Resolved.1.只有p1、p2、p3的状态都变成Fulfilled,p的状态才会变成Fulfilled,此时p1、p2、p3的返回值组成一个数组,传递给p的回调函数。
2023-08-18 18:01:31
121
1
原创 call、apply、bind的区别
原文链接:https://blog.youkuaiyun.com/m0_60489011/article/details/121499822。3.函数.bind(对象,arg1,arg2,....)() 注:bind返回的是一个函数体,并不会直接执行函数。2.函数.apply(对象,[arg1,arg2,...])首先了解三个的作用是一样的,是用来改变this的指向。它们的区别主要是在于方法的实现形式和参数传递上的不同。1.函数.call(对象,arg1,arg2....)
2023-08-14 16:05:52
77
原创 this指向
有以下六点:1.单独使用 this,它指向全局(Global)对象。2.在对象方法中, this 指向调用它所在方法的对象。3.函数使用中,this 指向函数的所属者。4.严格模式下函数是没有绑定到 this 上,这时候 this 是 undefined。5.在 HTML 事件句柄中,this 指向了接收事件的 HTML 元素。6.apply 和 call 允许切换函数执行的上下文环境(context),即 this 绑定的对象,可以将 this 引用到任何对象。—————————
2023-08-14 16:02:20
108
原创 ES6-箭头函数
this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。由于箭头函数没有自己的this,当然也就不能用call()、apply()、bind()这些方法去改变this的指向。3. 不可以使用arguments对象,该对象在函数体内不存在。1. 函数体内的this对象就是定义时所在的对象(固定的),而不是使用时所在的对象。4. 不可以使用yield命令,因此箭头函数不能用作Generator函数。
2023-08-14 15:59:41
62
原创 Reflect
某些Object操作是命令式,比如name in obj和delete obj[name],而Reflect.has(obj,name)和Reflect.deleteProperty(obj,name)让它们变成了函数行为。比如,Object.defineProperty(obj,name,desc)在无法定义属性时会抛出一个错误,而Reflect.defineProperty(obj,name,desc)则会返回false。Reflect对象与Proxy对象一样,也是ES6。
2023-08-14 15:19:27
40
原创 Proxy实例的方法
利用Proxy,可以将读取属性的操作(get)转变为执行某个函数,从而实现属性的链式操作。接受3个参数,分别是目标对象、目标对象的上下文对象(this)和目标对象的参数数组。defineProperty方法返回false,导致添加新属性会抛出错误。get拦截实现数组读取负数索引。
2023-08-14 14:50:36
92
原创 ES6-Proxy
可以理解成在目标对象前架设一“拦截”层,外界对该对象的访问都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。ES6原生提供Proxy构造函数,生成Proxy实例。let proxy = new Proxy(target, handler)要使用Proxy起作用,必须针对Proxy实例进行操作。如果handler没有设置任何拦截,那就等同于直接通向原对象。将 Proxy对象作为object的原型对象,从而可以在object对象上调用。
2023-08-14 11:38:31
81
原创 Vue-cli和Vite
Webpack有着生态更加丰富的loader,可以处理各种各样的资源依赖,以及代码拆分(Code Splitting)和按需合并。在开发环境:基于对源码文件,用Webpack对代码进行打包,结合webpack-dev-server提供静态资源服务。在开发环境:基于浏览器原生ES6 Modules,无需对代码进行打包直接让浏览器使用。(创建完是没有node_modules包的,需要npm install后生产node_modules)启动项目:先 npm install 再 npm run dev。
2023-08-11 17:02:03
789
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人