常用且容易忘记和混淆的方法(待补充)

常用且容易忘记和混淆的方法(待补充)

call() 、 apply() 、bind()方法的作用和区别

关于call() 和 apply() 的理解就是,它们的作用是: 让函数在某个指定的对象下执行
bind() 就是将某个函数绑定到某个对象上,

接下来简单讲解call和apply的共同点和不同点:

** call() 和apply()的第一个参数相同,就是指定的对象。这个对象就是该函数的执行上下文.**

call()和apply()的区别就在于,两者之间的参数。

**call()在第一个参数之后的 后续所有参数就是传入该函数的值。apply() 只有两个参数,第一个是对象,第二个是数组,这个数组就是该函数的参数。 **

bind() 方法会返回执行上下文被改变的函数而不会立即执行,而前两者是直接执行该函数。他的参数和call()相同。

var obj = {};
 
function foo(a, b, c) {
  console.log(b);
}
 
foo.call(obj, 1, 2, 3) //2

foo.apply(obj, [1, 2, 3])   //2;

require.js

  1. require.js是一个js脚本加载器,它遵循AMD(Asynchronous Module Definition)规范,实现js脚本的异步加载,不阻塞页面的渲染和其后的脚本的执行,并提供了在加载完成之后的执行相应回调函数的功能;

  2. require.js要求js脚本必须要实现模块化,即文件化;而require.js的作用之一就是加载js模块,也就是js文件。

  3. require.js可以管理js模块/文件之间的依赖;即不同的框架例如Jquery,AngularJs等采用了不同的语法,而使用这些语法的js文件在导入时必须排在Jquery.js或Angular.js之后才能顺利执行,require.js则能够解决排序依赖问题。

    扫描二维码关注公众号,回复: 8714633 查看本文章
  4. RequireJS 是一个JavaScript模块加载器。它非常适合在浏览器中使用,但它也可以用在其他脚本环境,就像 Rhino and Node。使用RequireJS加载模块化脚本将提高代码的加载速度和质量。

加载文件越多,网页失去响应的时间就会越长。
由于js文件之间存在依赖关系,因此必须严格保证加载顺序,依赖性最大的模块一定要放到最后加载,当依赖关系很复杂的时候,代码的编写和维护都会变得困难。

require.js的诞生就是为了解决上面所说的两个问题:

  1. 实现js文件的异步加载,避免网页失去响应;

  2. 管理模块之间的依赖性,便于代码的编写和维护。

回调函数callback()

我们可以像使用变量一样使用函数,作为另一个函数的参数,在另一个函数中作为返回结果,在另一个函数中调用它。当我们作为参数传递一个回调函数给另一个函数时,我们只传递了这个函数的定义,并没有在参数中执行它

当包含(调用)函数拥有了在参数中定义的回调函数后,它可以在任何时候调用(也就是回调)它。

这说明回调函数并不是立即执行,而是在包含函数的函数体内指定的位置“回调”它(形如其名)。

发布了46 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yuanfangyoushan/article/details/87955078