Javascript四种调用模式中的this指向
2024-08-31 12:08:24
第一种:函数直接调用执行的模式
function add(a,b){
console.log(this);
return a+b;
}
add(,)
//this===window 这里的this指向是window的
第二种:对象方法的调用模式
var people={
name:'wang',
sex:'男',
eat:function(){
console.log(this);
}
}
people.eat();
//this===对象,对象方法调用时,this指向被调用者
第三种:构造器的调用模式
function People(){
this.eat=function(){
console.log(this);
}
}
var wang=new People();
wang.eat();
//对象调用自己的方法,this===wang,谁new的this指向谁
第四种:call和apply调用模式
call方法有多个参数,第一个是要绑定给this的值,后面跟是若干。
apply方法有两个参数,第一个是要绑定给this的值,第二个是一个参数数组可以放若干。
function change(a,b){
this.detial=a*b;
console.log(this);
}
var p={};
change.call(p,,);//此处的this===p
console.log(p.detial);
var q=[];
change.call(q,,)//this===q
console.log(q.detial); //apply和call一样的用法,只不过apply第二个参数用数组进行传递
var arr=[];
change.apply(arr,[,]);//this===arr
console.log(arr.detial); var str={};
change.apply(str,[,]);//this===str
console.log(str.detial);
最新文章
- kindeditor4整合SyntaxHighlighter,让代码亮起来
- Zookeeper常用命令
- ios 计算缓存大小并清理缓存
- 修改mozilla firefox的设置
- 判断是否存在哈密顿路--HDU 5424
- EF架构~LinqToEntity里实现left join的一对一与一对多
- IOS开发UI基础UIView
- App Previews操作经验
- Android——ViewGroup的一个用法实例(转载)
- [1.1]Knowledge that should be prepared
- NSString 筛选和最后一个空白、空行,多换行成一个新行
- takes 3 positional arguments but 4 were given错误
- python画出心形图
- teeporxy.go
- FineUIPro v5.1.0 发布了!
- scala-jdbc-scalike操作jdbc数据库
- 类的内置方法__attr__介绍
- Python中的对象行为与特殊方法(一)对象的创建与销毁
- 此实现不是Windows平台FIPS验证的加密算法的一部分
- code1173 最优贸易