定义时不执行,调用时才执行。


**调用方式,4种:
作为函数
作为方法
作为构造函数
通过call()和apply()调用**


8.2.1 作为函数调用


8.2.2 作为方法调用

当一个方法,是某个对象的属性1) a.o();
2)  a["o"]();  // 通过方括号访问属性的方式调用
3)a[0]();  //通过索引来访问对象的属性*:属性方法一般会传入一个隐形的实参,也就是这个对象本身,可以通过this来调用**: rect.setSize(width,height)  setRectSeize(rect,width,height) 这俩个调用的差别在于,this关键字所指向的对象不同,前者指向rect,后者指向window

代码如下:

<!-- 函数,当做方法调用时,与当做函数调用时this指向的内容不一样-->
<!DOCTYPE html>
<html>
<head><title></title><meta charset = "utf-8">
</head>
<body><script type="text/javascript">var rect = {width : 10,height: 20,setSize : function(x,y){var str = "";this.width = x;this.height = y;if(this === rect)str = "setRectSize中的this指向rect<br>";elsestr = "setRectSize中的this不指向rect<br>";document.write(str);}}; function setRectSize(r,w,h){var str = "";r.width = w;r.height = h;if(this===window)str = "setRectSize中的this指向window<br>";elsestr = "setRectSize中的this不指向window<br>";document.write(str);}rect.setSize(1,2);setRectSize(rect,1,2);</script>
</body>
</html>

运行结果如下:

 ***:对象的方法,如果没有特定返回值,一般返回对象本身,这样有利于链式调用。

8.2.3 作为构造函数调用

1) 添加new关键字,就可以将函数作为构造函数调用。
2)返回一个对象。
3)对象可以通过构造函数来初始化。
4)对象将继承function.prototype上带有的属性

代码以及运行结果:

<!-- 构造函数调用
1.用new关键字,将普通函数当做构造函数使用
2.通过该函数的prototype中的属性,初始化该对象
3.在构造函数中的this关键字,只想的是被构造的新对象-->
<!DOCTYPE html>
<html>
<head><title></title><meta charset="utf-8">
</head>
<body><script type="text/javascript">function func(){this.a = 1;this.b = 2;}//为func的prototype添加属性func.prototype.c = 3;var o = new func();//var o = new func;//对于无参数调用构造函数,上面两个式子效果一样//对象o,由构造函数初始化a,b属性,通过prototype将c熟悉继承给ovar result = "o.a=" + o.a + "<br>o.b=" + o.b + "<br>o.c=" + o.c;document.write(result);</script>
</body>
</html>


8.2.4 间接调用

函数自带两个方法,call(),apply(),通过这两个方法调用函数,可以控制函数体中this关键字的指向。

<!-- 通过call()/apply()实现函数的间接调用-->
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title></title>
</head>
<body><script type="text/javascript">var o = {},o2 = {};function f(x,y){//此处的this,指向call()的第一个参数this.a = x;this.b = y;}f.call(o,1,2);f.apply(o2,[1,2]);//apply()与call()的区别在于参数需要放在数组里</script>
</body>
</html>

《权威指南》笔记 -- 8.2 函数调用相关推荐

  1. HTML5与CSS3权威指南笔记案例1

    第1章 <!DOCTYPE html> <meta charset = "UTF-8"> <title> Search </title&g ...

  2. 《Cortex-M3 权威指南 笔记》

    因了命途中的你们,我才没有荒芜了青春. – 莫言 一.介绍 整个 MCU 只有Cortex-M3 处理器内核(中央处理单元(CPU))和调试器是ARM设计的,而存储器,外设,I/O以及其它功能块是芯片 ...

  3. Java性能优化权威指南--笔记

    出处:http://xiongpq.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 原文 ...

  4. netty权威指南笔记-以回车换行结尾的消息如何处理半包问题

    概述 TCP底层会发生粘包和拆包,这个是TCP的一个特性.为了减少网络数据传输的次数,TCP总是希望让网络数据到达一定量级的时候才将数据发送出去,而不是缓存区一有数据就马上发送数据. TCP底层会根据 ...

  5. Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

    Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...

  6. Hase权威指南笔记

    第一章 1.1 海量数据的黎明: RDBMS 结构化数据 传统关系型数据库 科德十二定律 [Codd's 12 rules] 满足新的工作负载提出的 列式存储[column-oriented] 大规模 ...

  7. JavaScript 权威指南笔记 - 可选的分号

    分号 只有缺少分号无法正确解析代码的时候会自动添加分号 var a a = 3 => var a; a = 3; var y = x + f (a + b).toString() => v ...

  8. 学习正点原子讲解FreeRTOS中断管理心得和cortex-M3权威指南笔记

    1.一个任务恢复运行: (1)恢复一个任务的运行:将一个任务从挂起态恢复到就绪态,只有通过函数vTaskSuspend()设置为挂起态的任务才能使用vTaskResume()恢复,函数原型为void ...

  9. JS权威指南笔记之数据类型

    1.类型分为原始类型和对象. 2.原始类型有:数字类型,字符类型,布尔,和null undefind. 3.JavaScript里的函数都是真值. 4.函数和通过New关键字创建对象.这个样函数称为构 ...

  10. javascript权威指南——笔记(第十章:正则)

    正则表达式是描述字符模式的对象 为什么使用正则: 1.找数字 1 var str = "12 f13kjm54n43 43k"; 2 var arr = []; 3 4 for(v ...

最新文章

  1. 设计模式之单例模式(Singleton)摘录
  2. 使用复合索引代替单键索引,来避免单键有null值的情况
  3. 非spring环境中配置文件工具
  4. python集合运算_python-集合及其运算
  5. ML之LoR:kaggle比赛之利用泰坦尼克号数据集建立LoR模型对每个人进行获救是否预测
  6. 【easyui】treegrid逐级加载源码
  7. [AlwaysOn Availability Groups]CLUSTER.LOG(AG)
  8. Ubuntu16.04安装nginx
  9. A Translation for Quaternion 一篇对四元数的翻译
  10. pytorch 计算topk_pytorch -- topk()
  11. linq to sql 语法 学习笔记(1)
  12. 电脑录屏软件哪个好?快速录制高清视频的方法是什么?
  13. 软件开发每个阶段的任务以及产生的文档
  14. 制作U盘引导盘,安装Ubuntu18.04系统
  15. C-NCAP主动安全 ADAS 系统试验方法——相关术语与定义
  16. 【批处理DOS-CMD命令-汇总和小结】-注册表编辑命令reg,如何用cmd命令打开注册表编辑器regedit
  17. 计算机视觉入门(包含论文学习网址)
  18. 家用计算机都是专用计算机吗,什么是因特网概念和互联网一样吗(因特网发展历程)...
  19. (四)航空发动机强度与振动复习纲要
  20. 前端基础 CSS 第十一章 使用CSS样式表 特效属性部分 ----暑假学习第九天

热门文章

  1. 清华刘知远、黄民烈团队力作:一个「PPT」框架,让超大模型调参变简单
  2. python模拟投掷色子并做出数据可视化统计图
  3. css3中的2D和3D转换、动画效果以及布局
  4. Июль 2022 Рейтинг российских баз данных: ClickHouse на первом месте, GigaBASE на втором
  5. gis可达性分析步骤_消息速递 | 学院2017级城市管理本科班GIS课程作业成果汇报顺利进行...
  6. 直播预告 | 构建超自动化平台,助力品牌电商精细化运营
  7. iOS app集成使用 Facebook 深度链接
  8. Lighting Window 光照设置界面 光照系列2
  9. [buuctf]crypto刷题学习记录(1-22)
  10. Python爬虫之Selenium