作为其他变量的值


<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><script>function foo(x, y) {if (x > y) {return x;} else {return y;}}// 将 foo 函数作为变量 bar 的值var bar = foo;console.log(foo(12, 88))console.log(bar(12, 66))</script>
</body></html>

作为对象的属性值


<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><script>// 当函数作为对象的属性值存在时,我们通常把它称为对象的方法。例如,obj 对象的 sayName() 方法。var obj = {name: '张康',sayName: function () {return this.name;}};</script>
</body></html>

作为其他函数的参数


<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><script>// 我们之前遇到的将函数作为其他函数的参数的用法// ele.addEventListener('click', function(){})// $.getJSON('url', function(data, status, xhr) {})// 定义函数 foofunction foo(max) {console.log(max)}// 定义函数 barfunction bar(a, b, callback) {var max = -1;if (a > b) {max = a;} else {max = b;}// 在 bar 函数中调用传入的函数callback(max)}// 将 foo 函数作为 bar 函数的实参bar(12, 99, foo)// 上面的代码可以被简写成如下形式:// function bar(a, b, callback) {//     if (a > b) {//         callback(a)//     } else {//         callback(b)//     }// }// bar(12, 99, function (max) {//     console.log(max)// })</script>
</body></html>

作为其他函数的返回值


<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><ul><li>列表项1</li><li>列表项2</li><li>列表项3</li><li>列表项4</li><li>列表项5</li><li>列表项6</li></ul><script>// 基本示例:// 定义函数 bar/* function bar() {var i = 0;// 定义函数 foofunction foo() {console.log(i)i++;}// 将函数 foo 返回到函数外部return foo;}// 闭包函数是连接函数内部和外部的桥梁。var fun = bar()fun();fun();fun(); */// 将函数作为其他函数返回值的使用场景:var listItems = document.getElementsByTagName('li');// 通过为 dom 对象添加自定义属性 idx 来记录索引值// for(var i = 0, len = listItems.length; i < len; i++) {//     listItems[i].idx = i;//     listItems[i].onclick = function() {//         console.log(this.idx)//     };// }// 通过闭包函数记录索引值for(var i = 0, len = listItems.length; i < len; i++) {listItems[i].onclick = (function(idx) {return function() {console.log(idx)};})(i)}</script>
</body></html>

作为构造函数(定义对象)


<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><script>// 本地对象 Array/Function/Date...// 普通函数,偏重于实现功能(业务逻辑)function max (x, y) {return x > y ? x : y;}// 调用普通函数max(23, 45)// 构造函数,用来创建自定义对象的实例function Dog(dogName, dogAge) {this.name = dogName;this.age = dogAge;}// 调用构造函数var dog1 = new Dog('哈士奇', 3);var dog2 = new Dog('泰迪', 2);console.log(dog1, dog2)// 1. 当我们使用 new 操作符调用一个函数时,函数内部会自动创建一个该对象的实例。// 2. 我们可以在函数内部使用 this 关键字访问新创建的实例。// 3. 函数调用结束时,新创建的对象实例会被自动地返回到函数外部。// 4. 我们也可以在构造函数中手动地返回一个值,如果返回的是原始类型的数据,则会被忽略,如果返回的是引用类型的数据,则该数据会取代原本要返回的新实例。// 构造函数与普通函数本质上没什么区别,只不过为了区分它们,我们习惯将构造函数的首字母大写。// 1. 构造函数的首字母需要大写。// 2. 在构造函数时需要使用 new 操作符。</script>
</body></html>

JS-面向对象-函数的使用场景---作为其他变量的值 / 作为对象的属性值 / 作为其他函数的参数 / 作为其他函数的返回值 / 作为构造函数(定义对象)相关推荐

  1. oracle 异常返回值,oracle - java.sql.SQLException:无效的列类型:调用具有行类型返回值的函数时为1111 - 堆栈内存溢出...

    我在一个名为" MyPackage"的Oracle软件包中有一个函数: FUNCTION MyFunction(name IN VARCHAR2) RETURN MyTable%r ...

  2. JS 面向对象编程、原型链、原型继承(个人学习总结)

    一.面向对象 1. 面向对象 是所有语言 都有的一种编程思想,组织代码的一种形式 基于对象的语言:JS语言 面向对象的语言:c++ java c# 2. 面向对象 3大特征 封装:将重用代码封装到函数 ...

  3. 对js面向对象的理解

    转自:http://www.cnblogs.com/jingwhale/p/4678656.html js面向对象理解 ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP ...

  4. JS面向对象,创建,继承

    很开心,最近收获了很多知识,而且发现很多东西,以前理解的都是错的,或者是肤浅的,还以为自己真的就get到了精髓,也很抱歉会影响一些人往错误的道路上走,不过这也告诉了我们,看任何一篇文章都不能盲目的去相 ...

  5. JS面向对象的程序设计之继承-继承的实现-借用构造函数

    JS面向对象的程序设计之继承-继承的实现-借用构造函数 前言:最近在细读Javascript高级程序设计,对于我而言,中文版,书中很多地方翻译的差强人意,所以用自己所理解的,尝试解读下.如有纰漏或错误 ...

  6. JS面向对象特性和值类型与复合类型

    JS面向对象之特性已经值类型与复合类型 一些属性 空对象 空对象也是对象, 只是有存变量的变量名, 没有对象属性 var o ={}; 参数传递 值类型: 函数内外两个变量, 两个数据, 都不相同 引 ...

  7. JS 面向对象与原型

    创建对象 创建一个对象,然后给这个对象新建属性和方法. var box = new Object(); //创建一个 Object 对象 box.name = 'Lee'; //创建一个 name 属 ...

  8. 返回值类型与函数类型不匹配_C++返回值类型后置(跟踪返回值类型)

    在泛型编程中,可能需要通过参数的运算来得到返回值的类型.考虑下面这个场景: template <typename R, typename T, typename U>R add(T t, ...

  9. 函数参数和函数返回值

    函数参数和函数返回值 函数参数 思考一个问题,如下: 现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗? def add2num( ...

最新文章

  1. CV之后,纯MLP架构又来搞NLP了,性能媲美预训练大模型
  2. Java多线程同步代码块
  3. SAP Spartacus Unit List Component的设计明细 - UnitListComponent
  4. c语言 想输入非数字是报错误,C语言上机练习5C言上机练习5.doc
  5. 【POJ - 2631】Roads in the North (树的直径,模板)
  6. C/C++面试题—重建二叉树【前序 + 中序- 重建二叉树 和 后序 + 中序 - 重建二叉树】
  7. linux 磁盘被挂载2个目录,Linux检测并挂载第二块硬盘的步骤
  8. Android 在popupWindow上用autoCompleteTextView报错(Android 6.0报错,8.0没有问题)
  9. 百度云强势入围 2018 Q3 Forrester Wave,仅用两年成为公有云一方霸主
  10. 一键伪装成 Windows 10:Kali Linux 2019.4 版本推出 “Undercover” 模式
  11. 数据结构课程设计:顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现...
  12. C#中将字符串中某字符不区分大小写并按全字匹配替换为空
  13. 鼠标悬停显示不同内容_数字标牌的A到Z:C代表CMS(内容管理系统)
  14. 《专家系统破解篇 六、IL代码破解--配套乱说》之 FeatherskyExpertSystem
  15. html在线编辑器 哪个好用,可视化HTML富文本编辑器有哪些?哪个好用?
  16. (一)PC 机与单片机通信(RS232 协议)【800个电子设计大赛资料合集】
  17. android自带网页提供,Android调用系统自带浏览器打开网页的实现方法
  18. 为什呢vue组件中的data必须是函数?
  19. php 查看文件锁定状态_Photoshop脚本 查看当前图层的锁定状态
  20. wget linux

热门文章

  1. vim之添加多行和删除多行
  2. Python学习 :格式化输出
  3. 一些常见的HTTP的请求状态码
  4. 003 HandlerMapping
  5. js实现删除确认提示框
  6. 人生聚散,一切随缘!
  7. Android Audio代码分析2 - 函数getMinBufferSize
  8. 抓取图像像素到int数组
  9. ECCV 2020 论文大盘点-人体形状与姿态估计篇
  10. 2019全球程序员薪酬报告:软件开发比机器学习抢手!40岁后收入下滑