js 之 this call apply
(一)关于this首先关于this我想说一句话,这句话记住了this的用法你也就差不多都能明白了:this指的是当前函数的对象。这句话可能比较绕,我会举出很多例子和这句话呼应的!(看下文)1.首先看下
- function doSomething(){
- alert(this);
- }
- doSomething();
我是在firefox里面调试的,所以返回的结果是[Object Window]。
那么这个 [Object Window], 到底是什么呢?看看下面的代码
- function doSomething(){
- alert(this===window);
- }
- doSomething();
看到弹出了true, 也就是说在这种正常情况下,this其实就是window
所以,我们定义了一个全局的变量的时候,可以
var test="Tony";
也可以
window["test"]="Tony";
下面这个例子,进一步说明,正常情况下,函数里的this就是window
- var test="Tony";
- function doSomething(){
- alert(this.test);
- alert(window.test);
- }
- doSomething();
- var name ="The Window";
- var object = {
- name:"My Object",
- doSomething:function(){
- return function(){
- return this.name;
- };
- }
- };
- alert(object.doSomething()());
-
- var name ="The Window";
- var object = {
- name:"My Object",
- doSomething:function(){
- var abc = this ;
- return function(){
- return abc.name;
- };
- }
- };
- alert(object.doSomething()());
- var test="Tony";
- function doSomething(){
- alert(this.test);
- }
-
- doSomething();
- doSomething.call();
- var test="Tony";
- var myobj={
- test : "Tom"
- };
- function doSomething(){
- alert(this.test);
- }
- toolmao.call();
- toolmao.call(myobj);
-
- var test="Tony";
- var myobj={
- test : "Tom"
- };
- function doSomething(name, age){
- alert(this.test + ":" + name + age);
- }
-
- doSomething("Tony",23);
- doSomething.call(myobj,"Tony",23);
- var test="Tony";
- var myobj={
- test : "Tom"
- };
- function doSomething(name, age){
- alert(this.test + ":" + name + age);
- }
- doSomething("Tony",23);
- doSomething.apply(object,["Tony",23]);
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。