1、对象方法调用模式  方法内部的this指向当前调用者的对象d

  定义类 (构造函数)

  function Dog (dogName){

    //创建一个空对象   让空对象==this

    this.name =  dogName;

    this.age = 0;

    this.run = function(){

      console.log(this.name + 'is running...')

    }

    //如果函数当做构造函数来调用(new)并且没有返回任何数据的时候 默认返回this

  }

  var d= new Dog('wangwang');

  d.run();

2、构造器调用模式 new

  function Cat(){

    this.name = "cat"

    this.age = 19;

    this.run = function(){

      console.log(this.name + 'is running...')

    }

  }

  var cat = new Cat();  //构造函数调用模式

  cat.run()  //方法调用模式

3、函数调用模式

  function f(a,b){

    console.log(a+''+b)

    console.log(this)  window

  }

  f(2,3)

  习题

  function Dog(){

    this.age = 19;

    console.log(this)

  }

  Dog()  //window  函数调用模式

  var d = new Dog();  //d  构造函数调用模式

4、call apply 调用模式

  function sum(a,b){

    console.log(this)

    return a+b

  }

  sum(1,2)  //this->window

  var t = {

    name:'laoma'

  }

  var m = sum.call(t,2,3)  //t 作为this传到函数里  sum方法里面的this 指向t   sum不是直接调用了 而是用call去调用这个sum方法 同时修改了this指向

          sum.apply(t,[2,3])

  console.log(m)

  //如果是number string 转化成包装类型 如果是null 还是原始的

  sum.call(null,2,3)  //window

  sum.call(undefined,2,3)  //window

  //习题

  借用Math.min方法 求数组最小值 [2,9,33]

  Math.min.apply(null,[2,9,33])

  把一个类数组转化成真数组  t = [1,true]

  var t = {}

  t[0] = 1;

  t[1] = true;

  t.length = 2;

  Array.prototype.slice.call(t,0)

js高级-函数的四种调用模式的更多相关文章

  1. JS面向对象函数的四种调用模式

    函数的四种调用模式 概念 在 js 中,无论是函数, 还是方法, 还是事件, 还是构造器,...这些东西的本质都是函数 函数, 方法, 事件, 构造器,...只是所处的位置不同 这四种模式分别是 函数 ...

  2. 函数的四种调用模式.上下文调用.call.apply

    闭包:函数就是一个闭包,一个封闭的作用域;         返回函数,要返回多个函数就用一个对象封装一下,         立即执行函数+return 回调函数   JS动态创建的DOM,不会被搜索引 ...

  3. js中this的四种调用模式

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  4. javascript中函数的四种调用模式详解

    介绍函数四种调用模式前,我们先来了解一下函数和方法的概念,其实函数和方法本质是一样,就是称呼不一样而已.函数:如果一个函数与任何对象关系,就称该函数为函数.方法:如果一个函数作为一个对象属性存在,我们 ...

  5. JS函数的四种调用模式

    函数在js中具有四种身份,分别为函数.方法.构造函数.apply或call调用 函数调用    函数调用模式中this指全局对象(window) var f1 = function() { alert ...

  6. javascript函数的四种调用模式及其this关键字的区别

    方法调用模式: 当一个函数被保存为对象的一个属性时,我们称它为一个方法.当一个方法被调用时,this被绑定到该对象. //方法调用模式 var myObject = { value: 0 , incr ...

  7. JavaScript (JS) 函数补充 (含arguments、eval()、四种调用模式)

    1. 程序异常 ① try-catch语法    测试异常 try-catch语法代码如下: try { 异常代码;     try中可以承重异常代码, console.log(“try”)  出现异 ...

  8. JS高级. 06 缓存、分析解决递归斐波那契数列、jQuery缓存、沙箱、函数的四种调用方式、call和apply修改函数调用方法

    缓存 cache 作用就是将一些常用的数据存储起来 提升性能 cdn //-----------------分析解决递归斐波那契数列<script> //定义一个缓存数组,存储已经计算出来 ...

  9. JavaScript高级之函数的四种调用形式

    主要内容 分析函数的四种调用形式 弄清楚函数中this的意义 明确构造函对象的过程 学会使用上下文调用函数 了解函数的调用过程有助于深入学习与分析JavaScript代码. 本文是JavaScript ...

随机推荐

  1. Anatomy of a Program in Memory.剖析程序的内存布局

    原文标题:Anatomy of a Program in Memory 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译 ...

  2. WebView加载失败或网络异常时,替换WebView的错误界面;

    WebView在加载失败时会显示一个失败原因的界面,各个手机显示的界面还都不一样,部分手机还会把Url显示出来:我们要做的就是统一加载失败的界面: 大概思路:在WebView这个控件上面再覆盖一个Vi ...

  3. SQL获取连续数字中断数字

    表A -- 创建结果表 create table #u(LostA int) declare @minA int,@maxA int set @minA=(select min(ID) from A) ...

  4. elasticssearch+kibanna入门(撰写中)

    看到一篇elasticssearch+kibanna的文章,觉得很好,不过例子是python的,所以使用java自己安装一下: https://mp.weixin.qq.com/s?__biz=MjM ...

  5. 32.纯 CSS 创作六边形按钮特效

    原文地址:https://segmentfault.com/a/1190000015020964 感想:简简单单的动画特效,位置,动画. HTML代码: <nav> <ul> ...

  6. zabbix监控java日志文件

    zabbix监控日志文件 https://blog.csdn.net/workdsz/article/details/78439230?utm_source=blogxgwz2

  7. 域控场景下windows安全日志的分析--审计认证行为和命令的历史记录

    https://www.cnblogs.com/KevinGeorge/p/8563458.html 一.域控windows安全日志基本操作 1.打开powershell或者cmd 1 #gpedit ...

  8. Android将Log写入文件

    为什么要将Log写入文件 运行应用程序的时候,大多数是不会连接着IDE的: 而当应用程序崩溃时,我们需要收集复现步骤,在设备上复现,并进行Debug: 而由于Android手机的多样性,有些问题是某个 ...

  9. [Flex+JAVA]建立Flex+java项目,并实现基本功能

    1新建JAVA WEB项目 新建后的web文件包截图 3添加Flex项目,右键,添加.更改项目类型,天剑Flex项目类型

  10. Tomcat相关的配置和设置

    1.Tomcat环境配置方法见百度文库.略. 2.查看. webapps:所有课执行的WEB项目都放在次目录中 work:此文件保存了所有临时文件,当开发中发现一个程序无法正确执行的时候,就可以考虑将 ...