代码拉取完成,页面将自动刷新
/**
* 函数
*/
function func () {
console.log('我是func函数: ' + this.name);
}
// call与apply都为 ·函数对象· 的方法,需要通过函数对象来调用
// 当对函数调用call()与apply()时都会调用函数执行
// 所以其实func()、call()与apply()的效果等同
// 0. func(): 返回[object window]
func(); // 我是func函数: undefined
// 1. call: 返回[object object]
func.call(); // 我是func函数: undefined
// 2. apply: 返回[object object]
func.apply(); // 我是func函数: undefined
// 3. 总结
// a. 如果以函数的形式调用, this指向永远都是window
// b. 而以方法形式调用时, this指向调用方法的那个对象 -> 又因为对象的原型为Object -> 所以指向object
// 因为call()与apply()返回的是[object object], 所以在调用时可以将一个对象指定为第一个参数
// 此时这个对象将会成为函数执行时的this
var obj = { name: '孙悟空' };
var def = { name: '白晶晶' };
func.call(obj); // 我是func函数: 孙悟空
func.apply(def); // 我是func函数: 白晶晶
// 4. call()与apply()的区别
// call()方法可以将实参在对象之后依次传递
// apply()方法需要将实参封装到一个数组依次传递
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。