- 原生 JS 的 window.onload 与 Jquery 的(function () {})有什么不同?
1.执行时间window.onload 必须等到页面内包括图片的所有元素加载完毕后才能执行。$(document) .ready()是 DOM 结构绘制完毕后就执行,不必等到加载完毕。
2.编写个数不同window.onload 不能同时编写多个,如果有多个 window.onload 方法,只会执行一 个$(document).ready()可以同时编写多个,并且都可以得到执行
3.简化写法window.onload 没有简化写法(function(){});
- call 和 apply 的区别
它们的共同之处:都“可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。”它们的不同之处:Apply:最多只能有两个参数——新 this 对象和 一个数组 argArray。如果给该方法传递多个参数,则把参数都写进这个数组里面,当然,即使只有一 个参数,也要写进数组里面。如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个TypeError。如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用 作 thisObj, 并且无法被传递任何参数。Call:则是直接的参数列表,主要用在 js 对象各方法互相调用的时候,使当前 this 实例指针保持一致,或在特殊情况下需要改变 this 指针。如果没有提thisObj 参数,那么Global 对象被用作 thisObj。更简单地说,apply 和 call 功能一样,只是传入的参数列表形式不同如:func.call(func1,var1,var2,var3)对应的 apply 写法为:func.apply(func1,[var1,var2,var3])。