2.call()和 apply()的区别
call()和 apply()表示在特定的作用域调用函数 (会改变传入函数的 this 值), 两者作用相同, 区别只是传入参数的方式不同, apply() 接受两个参数, 一个是在其中运行函数的作用域, 一个是参数数组 (可以使 Array 实例或 arguments 对象); 而 call() 第一个参数不变, 变化的是其余参数直接传给函数.
- function sum(num1,num2){
- return num1+num2;
- }
- function callSum1(num1,num2){
- // 传入 arguments 对象
- // 由于函数在全局作用域调用, 传入 this 值就是传入 Windows 对象
- return sum.apply(this,arguments);
- }
- function callSum2(num1,num2){
- // 传入数组
- return sum.apply(this,[num1,num2]);
- }
- alert(callSum1(10,10)); //20
- alert(callSum2(10,10)); //20
- function callSum(num1,num2){
- return sum.call(this,num1,num2);
- }
- alert(callSum(10,10)); //20
3.== 和 === 有什么区别?
=== 是全等, 使用 == 使如果两者数据类型相同, 则进行 ===, 如果数据类型不同, 则会进行一次数据类型的转换再比较; 而使用 === 时, 数据类型不同会直接返回 false.
4. 简述 JavaScript 中 this 的指向
哪个对象调用函数, 函数里面的 this 就指向哪个对象, 如对于普通函数来说, this 指向 Windows 对象; 对于对象中的函数, 用对象的实例去调用, this 会指向这个实例; 对于构造函数的中的 this,this 指向调用这个构造函数的对象.
来源: http://www.bubuko.com/infodetail-3294619.html