JavaScript 4.2 函数高级-this
来源:互联网 发布:js window.scrolltop 编辑:程序博客网 时间:2024/06/02 03:27
JavaScript 4.2 函数高级-this
在函数内部有2个特殊的对象:arguments和this。
this对象是函数执行的环境对象,或者说,是调用函数的那个对象。
情况一:纯粹的函数调用
这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。
var x = 0;function test(){ alert(this.x);}test(); //调用函数test()的是全局对象window,所以this.x = window.x,结果0
情况二:作为对象方法的调用
函数还可以作为某个对象的方法调用,这时this就指这个对象。
var x = 0;function test(){ alert(this.x);}var o = new Object();o.x = 1; //新增对象o的属性xo.m = test; //新增对象o的方法m()o.m(); //调用对象o的方法m(),所以this.x = o.x,结果:1
情况三 作为构造函数调用
所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。
function person(name,age) { this.name=name; this.age=age; } var myFather = new person("John",50); //结果:创建myFather.name="John",myFather.age=50alert(myFather.age); //50 function test(){ this.x = 1;}var o = new test(); //结果:创建o.x=1alert(o.x); // 1
情况四 :apply调用
apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。
var x = 0;function test(){alert(this.x);}var o={ x : 1, m : test};o.m.apply(); //0apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。
如果把最后一行代码修改为
o.m.apply(o); //1
运行结果就变成了1,证明了这时this代表的是对象o。
0 0
- JavaScript 4.2 函数高级-this
- javascript 函数中的 this
- 《JavaScript高级程序设计》函数
- Javascript 高级函数
- 【JavaScript】 高级函数
- JavaScript高级函数-----惰性函数
- JavaScript函数 this调用规则
- javascript 内部函数的this
- JavaScript之函数和this
- JavaScript 函数和方法,this
- javascript:this和call()函数
- JavaScript函数调用中的this
- JavaScript高级程序设计之函数表达式之闭包之关于 this 对象第7.2.2讲笔记
- javascript高级编程--匿名函数
- javascript函数入门到高级
- javascript函数的高级写法
- javascript 高级程序设计读书笔记 函数
- JavaScript 高级函数实现AOP
- 进程与线程的一个简单解释
- 导入eclipse工程,工程以及文件显示问号
- git首次提交
- 动态内存的传递
- 转载:Questioning if Agile Works in Asia
- JavaScript 4.2 函数高级-this
- 海量数据处理(一)哈希分治
- 有关安全以及其他常用工具的词语解释
- 2.5其实他们都是“图”
- SimpleLink MCU SDK用户指南(1)
- 关于main(int argc, char* argv[])的理解
- 一个程序员的所思所想
- Java中 == 和 equalse()
- 第16章 多线程-1