JavaScript基本概念B - 关于方法
- 方法也是对象
这个事需要反复强调。方法是 类型 Function 的对象,和其他对象一样,它也有方法。
function gen() {
return function ans(factor) {
return 2 * factor;
};
}
如果看着混乱,可以使用变量看看
function gen() {
var f = function ans(factor) {
return 2 * factor;
};
return f;
}
或者这样
function gen() {
function ans(factor) {
return 2 * factor;
};
return ans;
}
- 方法的命名方式
试想你定义下面一个方法
function f(factor) {
return 2 * factor;
}
和下面这个是一样的
var f = function (factor) {
return * factor;
};
f(2);
- 方式不支持多态
你不能定义两个名字一样的方法,寄希望使用不同参数来区分。后面定义的方法会覆盖前面的方法。
function ans(f1, f2) { ... }
function ans(f1) { ... } // 这个会替代前面的方法.
需要注意的是所有的参数都不是必须的
function ans(a, b) {
//...
}
ans(2); //ans 被调用时 a = 2, and b = undefined
- 函数返回
在方法定义中你可以返回任意值或不返回
function () {
if (cond1) {
// 返回一个对象t
return {
a: 10
};
} else if (cond2) {
// 返回 undefined
return;
} else if (cond3) {
// 返回一个数字.
return 1;
}
}
JavaScript基本概念B - 关于方法的更多相关文章
- JavaScript基本概念(二)
JavaScript 基本概念(二) 操作符和语句 目录 操作符 一元操作符 位操作符 布尔操作符 乘性操作符 其他操作符 语句部分 说起操作符,回忆下上一篇文章末尾说的话. 操作符 一元操作符 ++ ...
- 《JavaScript核心概念》基础部分重点摘录
注:<JavaScript核心概念>适合深入了解JavaScript,比我买的<JavaScript框架设计>语言和内容丰富多了(可能是我水平尚浅吧). 1. 作用域 var ...
- JavaScript之call()和apply()方法详解
简介:apply()和call()都是属于Function.prototype的一个方法属性,它是JavaScript引擎内在实现的方法,因为属于Function.prototype,所以每个Func ...
- JavaScript的setter与getter方法
作者:http://hawkzz.com 以前在写项目过程一直都没有使用过Javascript的setter与getter方法,所以对其是一种要懂不懂的概念:今天看书看到这个知识点,还是模模糊糊的,于 ...
- Javascript 创建对象的三种方法及比较【转载+整理】
https://developer.mozilla.org/zh-CN/docs/JavaScript/Guide/Inheritance_and_the_prototype_chain 本文内容 引 ...
- 页面 JavaScript 存在多个同名方法的调用分析
在 JavaScript 中,不存在方法重载的概念,方法重载指的是可以定义不同类型的参数和参数个数的同名方法,然后可以按需调用. 如需实现按参数个数的不同去执行不同的方法主体,正确的做法是通过定义一个 ...
- 关于javascript中call()和apply()方法的总结
前段时间在使用javascript的过程中遇到了继承的问题,自己顺便就对call()和apply()方法进行了了解. 两个方法的共同之处:这两个方法作用相同,都用来改变当前函数调用的对象,即改变thi ...
- URL地址中中文乱码详解(javascript中encodeURI和decodeURI方法、java.net.URLDecoder.encode、java.net.URLDecoder.decode)
引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. ...
- JavaScript里值比较的方法
JavaScript里值比较的方法 参考资料 一张图彻底搞懂JavaScript的==运算 toString()和valueof()方法的区别 Object.is 和 == 与 === 不同 == 运 ...
随机推荐
- IOS 发布被拒 PLA 1.2问题 整个过程介绍 01
公司前端时间发布IOS APP ,但是遇到一些很麻烦的问题,就是一个让人摸不着头脑的问题. 问题: The Seller and Artist names associated with your a ...
- TCP的带宽估计和丢包恢复
一.带宽估计 TCP的带宽估计主要通过拥塞控制算法实现,用到两个变量: 1.cwnd TCP对当前链路可用带宽的估计 2.ssthreash 拥塞控制算法“假想”出来的可用带宽值 二.丢包 ...
- URAL 2062 树状数组
一个长度为n的数组 每次对lr区间进行修改 如果要修改i 则对i i*2 i*3...都修改 最后单点查询值 思想是利用树状数组维护每一个区间的更新值 查询的时候得出这个点的所有因子的查询值的和 加上 ...
- QT 使用QTcpServer QTcpSocket 建立TCP服务器端 和 客户端
1. 如图客户端连接server后,server发送"hello tcp" 给客户端 2. 实例代码 ----------------------------------- s ...
- Android 实现http通信(servlet做服务器端) HttpClient、HttpURLConnection实现登录验证
一,写好服务器端 在eclipse或其它javaee开发工具中新建一个web项目(我这里的项目名是:Android),建一个servlet(我这里的servlet名是:LoginServlet),模拟 ...
- centos6.5 安装JDK
今天在自己的centos机子上安装jdk,发现以前的教程都比较旧了,很多东西都过时了.今天把自己安装的感受写一下. 判断是否安装 首先,我们得判断机子上是不是安装了jdk,好多人推荐使用java -v ...
- UOJ222 【NOI2016】区间
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- Jedis的八种调用方式(功能:事务,管道)
1. packagecom.irwin.redis; 2. 3. importjava.util.Arrays; 4. importjava.util.List; ...
- ural 2017 Best of a bad lot
2017. Best of a bad lot Time limit: 1.0 secondMemory limit: 64 MB A cruise liner hasn’t moved away f ...
- 原生MapReduce开发样例
一.需求 data: 将相同名字合并为一个,并计算出平均数 tom 小明 jerry 2哈 tom tom 小明 二.编码 1.导入jar包 2.编码 2.1Map编写 package com.wzy ...