介绍:call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性
1.改变函数内部的this指向:
// 有一个局部的test2方法,
// test2被作为普通函数调用时,
// test2内部的this指向了window,
// 但我们往往是想让它指向该#test节点,见如下代码:
document.querySelector("#test").onclick = function(){
console.log(this.id)
var test2 = function(){
console.log(this)
}
function test3(){
console.log(this)
}
test3.call(this)
//改变了test2的this指针
test2.call(this)
}
复制代码
2.使用call来实现构造函数的继承。
function one(){
this.a = 1,
this.b = 2,
this.test = function(){
// console.log(this)
}
}
复制代码
//通过call来实现构造函数的继承
function two(){
one.call(this)
console.log(this)
}
复制代码
// 实例化
var oneObj = new one()
twoObj = new two()
复制代码
此时的twoObj已经继承了oneObj的属性。
作者: Bill 本文地址: http://biaoblog.cn/info?id=1564390320000
版权声明: 本文为原创文章,版权归 biaoblog 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!