删除目录下的.nvmd文件夹
1 | C:/Users/<用户名>/.nvmd |
删除目录下的.nvmd文件夹
1 | C:/Users/<用户名>/.nvmd |
进入项目 –> 找到设置 –> 左侧 Git –> Ignored Build Step –> 只构建生产版本
在 JavaScript 中,passive 是一个布尔值,用于指定事件监听器是否应该被标记为“被动”的。这个属性主要用于触摸事件(如 touchstart、touchmove、touchend 和 touchcancel)和滚轮事件(如 wheel)。
被动事件监听器是一种不会阻止浏览器默认行为的异步事件监听器。默认情况下,事件监听器是同步的,这意味着它们会阻止浏览器执行默认行为,直到事件处理程序执行完毕。但是,被动事件监听器不会阻止浏览器执行默认行为,从而提高了滚动性能。
passive 选项?你可以通过在事件监听器的 addEventListener 方法中设置 passive 选项来指定事件监听器是否应该被标记为被动。
1 | element.addEventListener( |
在上面的例子中,我们为 touchstart 事件添加了一个被动的事件监听器。这意味着浏览器可以自由地执行默认的触摸行为,而不会等待事件处理程序执行完毕。
passive 选项将被忽略。以下是一个使用被动事件监听器的示例:
1 |
|
在上面的例子中,我们为 scroll 事件添加了一个被动的事件监听器。这意味着浏览器可以自由地执行滚动行为,而不会等待事件处理程序执行完毕。
在 JavaScript 中,apply、bind 和 call 是用于改变函数执行上下文(即 this 关键字)的方法。它们在函数调用时非常有用。下面分别介绍这三个方法,并给出手写实现的代码。
applyapply 方法调用一个函数,并显式地指定 this 的值和参数列表(以数组或类数组对象的形式)。
1 | function greet(greeting, punctuation) { |
callcall 方法与 apply 类似,也是调用一个函数,并显式地指定 this 的值和参数列表(以逗号分隔的形式)。
1 | function greet(greeting, punctuation) { |
bindbind 方法创建一个新的函数,当这个新函数被调用时,其 this 值会被指定为 bind 方法的第一个参数,其余参数将作为新函数的参数。
1 | function greet(greeting, punctuation) { |
下面是 apply、call 和 bind 的手写实现:
apply1 | Function.prototype.myApply = function (context = window, args = []) { |
call1 | Function.prototype.myCall = function (context = window, ...args) { |
bind1 | Function.prototype.myBind = function (context, ...args) { |
1 | function greet(greeting, punctuation) { |
| 方法 | 是否调用 | 参数形式 |
|---|---|---|
apply |
是 | 数组或类数组对象 |
call |
是 | 逗号分隔的参数列表 |
bind |
否 | 逗号分隔的参数列表 |
通过这些手写实现,可以更好地理解 apply、call 和 bind 的内部工作原理。
在 CommonJS 模块系统中,exports、module.exports 和 this 是三个非常重要的对象,它们用于导出模块中的变量、函数或类。下面分别介绍这三个对象,并通过示例代码进行说明。
exportsexports 是一个对象,用于将模块中的变量、函数或类导出。默认情况下,exports 是 module.exports 的一个引用。
module.exportsmodule.exports 是一个对象,用于显式地导出模块中的内容。与 exports 不同的是,module.exports 可以被赋值为任何类型的值,包括对象、函数、类等。
this在模块的上下文中,this 通常指向 exports 对象。这意味着你可以使用 this 来导出模块中的内容。
假设我们有以下两个文件:example.js 和 main.js。
1 | // example.js |
1 | // main.js |
在上面的 main.js 文件中,我们分别调用了 example.js 中通过 exports、module.exports 和 this 导出的函数。
exports 是一个对象,用于将模块中的内容导出。module.exports 可以被赋值为任何类型的值,用于显式地导出模块中的内容。(require 引入得到的东西)this 通常指向 exports 对象,可以用于快捷地导出模块中的内容。在实际开发中,推荐使用 module.exports 来导出模块,因为它提供了更大的灵活性。