1.函数执行模式:
function add(a,b){
console.log(this)
return a + b
}
// this = window
add()
2.对象方法的调用模式:
function Cat() {
this.show = function(){
console.log(this)
}
}
var c = new Cat()
//对象调用自己的方法
c.show()
3.构造器的调用模式:
function Cat() {
this.show = function(){
console.log(this)
}
}
var c = new Cat()
//和第二种方法的执行结果相同但是,模式不同
4.call() apply() bind()调用模式:
function info(name,age){
return console.log('你好'+ name + '我是调用的'+ this.name + age + '岁')
}
var whh = {
name:'娃哈哈'
}
console.log(whh)
//使用call可以把this绑定上,function的this等于什么,可以在外部指定;
//第一项用于绑定函数里面的this
//call和apply本质上是一样的不同的区别如下:(传参为数组)
//bind 必须要用变量接收,调用变量()不马上执行
info.call(whh,'李慷',111)
info.apply(whh,['李慷',111])
var yy = info.bind(whh)
yy('kk',22)
网友评论