回归JavaScript基础(七)
主题:引用类型Function的介绍。
今天首先说的就是Function类型。下面就是定义函数的两种方法,第一种使用函数声明语法定义,第二种使用函数表达式定义。这两种定义函数的方式几乎没有什么区别。
function func1() {}
var func2 = function() {}
console.log(typeof(func1)); //function
console.log(typeof(func2)); //function
非要说区别就如下面代码所示。在执行JavaScript前会对申明的变量和函数进行提前,把这些都自动放到执行代码的最上方,但是变量的赋值却不提升!是不是很费解,不过这就是JavaScript的规定,一定要注意!
console.log(hello()); //"Hello,world."
console.log(hi()); //undefinded
function hello() {
return "Hello,world.";
}
var hi = function() {
return "Hi,world.";
};
函数源于对象,因此实际上函数名实际上也是一个指向函数对象的指针。下面代码中的hello和hi就是指向同一个function对象。
function hello() {
return "Hello,world!";
}
hello(); //"Hello,world!"
var hi = hello; //注意:不带括号的函数名访问的是函数指针
hi(); //"Hello,world!"
在前面就提过,JavaScript中函数没有重载。这里,我们可以通过函数表达式的例子更清楚了解这点。
var add = function(num) {
return num + 1;
};
add = function(num) {
return num + 2;
};
var result = add(1); //3
//备注:很明显,第二次的function覆盖了第一次function
函数可以作为一个值再传给另一个函数。
function addFunc(func, arg) {
return func(arg);
}
var add = function(num) {
return num + 1;
};
var result = addFunc(add, 1);
console.log(result); //
(拓展)函数的apple()和call()方法。有兴趣可以查查资料,后面还会介绍!
var name = "xuchaoi";
var blog = {name: "blog.xuchaoi"};
function getName() {
console.log(this.name);
}
getName(); //xuchaoi
getName.apple(blog); //blog.xuchaoi
getName.call(blog); //blog.xuchaoi
回归JavaScript基础(七)的更多相关文章
- 回归JavaScript基础(六)
主题:引用类型Date.RegExp的介绍. 上节主要主要介绍了Object.Array引用类型.这节将继续为大家介绍引用类型,并对书中的一些知识点进行总结与归纳,也借此巩固自己对JavaScript ...
- 回归JavaScript基础(一)
主题:JavaScript简介. 一.JavaScript的起源 JavaScript诞生于1995年.当时,它的主要作用是处理一些输入验证操作.之前的话,都是把表单数据发送到服务器端,然后再去判断有 ...
- JavaScript 基础(七) 箭头函数 generator Date JSON
ES6 标准新增了一种新的函数: Arrow Function(箭头函数). x => x *x 上面的箭头相当于: function (x){ return x*x; } 箭头函数相当于匿名函 ...
- 回归JavaScript基础(十)
主题:创建对象 原型模式 JavaScript中的每个对象都有一个prototype属性(原型属性),这个属性是一个指针,指向一个对象,而这个对象可以由一些属性和方法组成.被指向的对象,可以是多个对象 ...
- 回归JavaScript基础(九)
主题:理解对象,创建对象. 小明是一名程序猿,也是一条单身狗!他常常自嘲:每天都会有很多对象,但却没有女朋友! 多么痛的领悟.哈哈,目前比较流行的编程语言都是面向对象的语言(Object-Orient ...
- 回归JavaScript基础(八)
主题:引用类型包装类.单体内置对象的介绍. 对于我们开发人员来说,JavaScript有种引用类型一定很陌生!那就是基本包装类型:Boolean.Number和String.这也不是我们的错,主要这些 ...
- 回归JavaScript基础(五)
主题:介绍引用类型Object.Array. 在上一章中,作者就在说变量的值的时候,提到过引用类型这个概念.JavaScript中存在基本类型和引用类型,其中引用类型很重要,这里有许多我们需要注意的东 ...
- 回归JavaScript基础(四)
主题:JavaScript变量.作用域和内存问题 JavaScript的变量和别的语言比起来是与众不同的.说道变量,不得不谈他的作用域.同很多语言一样,JavaScript开发者也不用担心开发中内存的 ...
- 回归JavaScript基础(三)
主题:JavaScript基本概念. 任何语言的核心必然会描述这门语言最基本的工作原理.这部分内容对我们来说,读起来很乏味,甚至会产生困意,但这部分内容却是重要的!我有幸拜读<JavaScrip ...
随机推荐
- ES6-Array
/* * 数组解构赋值: * ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这种被称为解构. * 示例如下: */ var [a,b,c] = [1,2,3]; console.log ...
- Kafka—性能逆天的存在
0.引言 Kafka是LinkedIn开源出来的一款消息服务器,用Scala语言实现:这货的性能是百万级的QPS(估计是挂载了多块磁盘),我随便写个测试程序就是十万级. 1.Kafka基本概念 在Ka ...
- springboot-3-其他配置
1, 热部署: 有jrebel的话, 不用了, 不如jre好用 原理: 使用两个classLoad, 一个加载不改变的jar, 另一个加载可更改的jar, 发生改变后, 舍弃可更改的jar重新rest ...
- 剑指offer65:矩阵中的路径
题目描述: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩阵 ...
- 学习笔记---log4j的使用与配置
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式. 日志信息的优先级从高到低有OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL,分别用来 ...
- lua闭包与简易迭代器实现
1.什么是闭包 闭包,又称闭合函数(closure).通常,如果将一个函数写在另一个函数内,那么这个在内部的函数就可以访问到外部函数中的局部变量,这个特征就是词法域,有些资料上也叫它词法定界.闭包指的 ...
- Android 控件:使用下拉列表框--Spinner
---恢复内容开始--- 一.前段代码 <Spinner android:id="@+id/spin" android:paddingTop="10px" ...
- CSS 通过使用Important覆盖所有其他样式
在许多情况下,您将使用CSS库.这些可能会意外覆盖您自己的CSS.所以当你绝对需要确定一个元素具有特定的CSS时,可以使用 !important. 让我们回到之前的 pink-text class 声 ...
- Android基础知识你知道多少?
https://github.com/zhantong/interview/blob/master/Android/Android.md 四大组件是什么? 四大组件的启动方式? Activity生命周 ...
- ef oracle参数化问题
并非所有变量都已绑定 假如一个sql是这样的 string sql =@" select id from a where date between :StartDate and :EndDa ...