博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js的apply方法使用详解,绝对NB
阅读量:5836 次
发布时间:2019-06-18

本文共 868 字,大约阅读时间需要 2 分钟。

情况1:

作为函数调用

var yazi={

    jiao:function(){
        var ji=function(){
            console.log(this);
        }
        ji();
    }
}
yazi.jiao();//window

 

function jiao(){

  console.log(this);

}

jiao();//window

当一个函数并非一个对象的属性时,那么它就是被当做函数来调用的。在此种模式下,this被绑定为全局对象,在浏览器环境下就是window对象

 

2.方法调用式

var yazi={

  jiao:function(){

    console.log(this);

  }

}

yazi.jiao();//yazi

当函数被保存为一个对象的属性时,它就可称为这个对象的方法。当一个方法被调用时,this被绑定到这个对象上。如调用表达式包含一个提取属性的动作

 

3.构造函数式

function person(){

    name:'hanhongshuai';

  sleep:function(){

    console.log(this.name);

  }

}

new person.sleep();

如果在一个函数前面加上new关键字来调用,那么就会创建一个连接到该函数的prototype成员的新对象,同时,this会被绑定到这个新对象上

 

4.apply,call方法模式:

var yazi={

   shengyin:'嘎嘎';

   jiao:function(){

    console.log(this.shengyin);

  }

}

var ji={shengyin:'jiji';}

yazi.jiao.call(ji);//jiji

js中,函数也是对象,所有函数对象都有两个方法:apply和call,这两个方法可以让我们构建一个参数数组传递给调用函数,允许我们改变this的值

 

转载于:https://www.cnblogs.com/hhs6880/p/6638880.html

你可能感兴趣的文章
发展物联网 构建智能连接
查看>>
增强网络安全防御 推动物联网走向应用
查看>>
UML中关联,组合与聚合等关系的辨析
查看>>
《大数据管理概论》一3.2 大数据存储与管理方法
查看>>
《R语言数据挖掘》----1.10 数据属性与描述
查看>>
PowerBuilder开发简单计算器
查看>>
从HDFS看分布式文件系统的设计需求
查看>>
怎样使用linux的iptables工具进行网络共享
查看>>
《HTML5与CSS3实战指南》——导读
查看>>
RHEL6下安装oracle 10g(一)
查看>>
Redhat 7 httpd 显示wsgi页面
查看>>
mysql的binlog
查看>>
Kconfig的格式
查看>>
禁止用户更改IP地址的设置方法有哪些
查看>>
【更新】Word组件Spire.Doc for .NET V6.0.21发布 | 附下载
查看>>
软件测试流程
查看>>
Uncaught TypeError: xxx.submit is not a function解决方案
查看>>
07.继承和聚合
查看>>
关于Cursor的moveToFirst和moveToNext的意义
查看>>
个人--工资划分5份
查看>>