JavaScript设计模式与开发实践(一)
2024-09-04 02:52:11
一、this
this的指向大致可以分为以下几种:
- 作为对象的方法调用
- 作为普通函数调用
- 构造器调用
- Function.prototype.call或Function.prototype.apply
1.作为对象调用
当函数作为对象的方法被调用,this指向该对象:
var obj = {
a:1,
getA:function(){
alert(this === obj); //输出true
alert(this.a); //输出1
}
}; obj.getA();
当函数作为普通函数被调用,this指向全局对象(浏览器中指window对象)
window.name = 'globalName'; var getName = function(){
return this.name;
} console.log(getName()); //输出:globalName 或者 window.name = 'globalName'; var muObject = {
name: 'sven',
getName: function(){
return this.name;
}
}; var getName = myObject.getName;
console.log(getName()); //输出: globalName
构造器里的this指向返回的对象
var MyClass = function(){
this.name = 'sven';
}; var obj = new MyClass();
alert(obj.name); //输出:sven
call和apply动态的改变传入函数的this
var obj1 = {
name: 'sven',
getName:function(){
return this.name;
}
}; var obj2 = {
name:'anne'
}; console.log(obj1.getName.call(obj2)); //输出: ‘anne’
最新文章
- 用.NET MVC实现长轮询,与jQuery.AJAX即时双向通信
- 解决cefsharp在winform中不显示tooltipText问题(网页元素的title提示)
- 浅谈float浮动
- GIT之旅【第一篇】
- Backbone事件模块源码分析
- Android客户端性能测试(一):使用APT测试Android应用性能
- Java中比较不同的MD5计算方式
- ERWin &; ERStudio图里的实线和虚线的含义[转]
- DownloadManager 下载管理类
- 多路复用I/O poll()
- C#中foreach语句的迭代器实现机制
- linux视频学习4(crontab和进程)
- SELECT中的多表连接
- EasyUI扩展验证
- VK-Cup 2017 qualification 1
- POI中excle样式怎么写
- fabric.js PatternBrush
- UML和模式应用4:初始阶段(5)--用例编写的准则
- Java基础语法<;八>; 继承 多态 抽象 反射
- java自定义事件机制分析