主题:引用类型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基础(七)的更多相关文章

  1. 回归JavaScript基础(六)

    主题:引用类型Date.RegExp的介绍. 上节主要主要介绍了Object.Array引用类型.这节将继续为大家介绍引用类型,并对书中的一些知识点进行总结与归纳,也借此巩固自己对JavaScript ...

  2. 回归JavaScript基础(一)

    主题:JavaScript简介. 一.JavaScript的起源 JavaScript诞生于1995年.当时,它的主要作用是处理一些输入验证操作.之前的话,都是把表单数据发送到服务器端,然后再去判断有 ...

  3. JavaScript 基础(七) 箭头函数 generator Date JSON

    ES6 标准新增了一种新的函数: Arrow Function(箭头函数). x => x *x 上面的箭头相当于: function (x){ return x*x; } 箭头函数相当于匿名函 ...

  4. 回归JavaScript基础(十)

    主题:创建对象 原型模式 JavaScript中的每个对象都有一个prototype属性(原型属性),这个属性是一个指针,指向一个对象,而这个对象可以由一些属性和方法组成.被指向的对象,可以是多个对象 ...

  5. 回归JavaScript基础(九)

    主题:理解对象,创建对象. 小明是一名程序猿,也是一条单身狗!他常常自嘲:每天都会有很多对象,但却没有女朋友! 多么痛的领悟.哈哈,目前比较流行的编程语言都是面向对象的语言(Object-Orient ...

  6. 回归JavaScript基础(八)

    主题:引用类型包装类.单体内置对象的介绍. 对于我们开发人员来说,JavaScript有种引用类型一定很陌生!那就是基本包装类型:Boolean.Number和String.这也不是我们的错,主要这些 ...

  7. 回归JavaScript基础(五)

    主题:介绍引用类型Object.Array. 在上一章中,作者就在说变量的值的时候,提到过引用类型这个概念.JavaScript中存在基本类型和引用类型,其中引用类型很重要,这里有许多我们需要注意的东 ...

  8. 回归JavaScript基础(四)

    主题:JavaScript变量.作用域和内存问题 JavaScript的变量和别的语言比起来是与众不同的.说道变量,不得不谈他的作用域.同很多语言一样,JavaScript开发者也不用担心开发中内存的 ...

  9. 回归JavaScript基础(三)

    主题:JavaScript基本概念. 任何语言的核心必然会描述这门语言最基本的工作原理.这部分内容对我们来说,读起来很乏味,甚至会产生困意,但这部分内容却是重要的!我有幸拜读<JavaScrip ...

随机推荐

  1. ES6-Array

    /* * 数组解构赋值: * ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这种被称为解构. * 示例如下: */ var [a,b,c] = [1,2,3]; console.log ...

  2. Kafka—性能逆天的存在

    0.引言 Kafka是LinkedIn开源出来的一款消息服务器,用Scala语言实现:这货的性能是百万级的QPS(估计是挂载了多块磁盘),我随便写个测试程序就是十万级. 1.Kafka基本概念 在Ka ...

  3. springboot-3-其他配置

    1, 热部署: 有jrebel的话, 不用了, 不如jre好用 原理: 使用两个classLoad, 一个加载不改变的jar, 另一个加载可更改的jar, 发生改变后, 舍弃可更改的jar重新rest ...

  4. 剑指offer65:矩阵中的路径

    题目描述: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩阵 ...

  5. 学习笔记---log4j的使用与配置

    Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式. 日志信息的优先级从高到低有OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL,分别用来 ...

  6. lua闭包与简易迭代器实现

    1.什么是闭包 闭包,又称闭合函数(closure).通常,如果将一个函数写在另一个函数内,那么这个在内部的函数就可以访问到外部函数中的局部变量,这个特征就是词法域,有些资料上也叫它词法定界.闭包指的 ...

  7. Android 控件:使用下拉列表框--Spinner

    ---恢复内容开始--- 一.前段代码 <Spinner android:id="@+id/spin" android:paddingTop="10px" ...

  8. CSS 通过使用Important覆盖所有其他样式

    在许多情况下,您将使用CSS库.这些可能会意外覆盖您自己的CSS.所以当你绝对需要确定一个元素具有特定的CSS时,可以使用 !important. 让我们回到之前的 pink-text class 声 ...

  9. Android基础知识你知道多少?

    https://github.com/zhantong/interview/blob/master/Android/Android.md 四大组件是什么? 四大组件的启动方式? Activity生命周 ...

  10. ef oracle参数化问题

    并非所有变量都已绑定 假如一个sql是这样的 string sql =@" select id from a where date between :StartDate and :EndDa ...