1.函数的声明方式有三种
普通函数的声明方式
function box(num1,num2)
{
return num1+num2;
}
alert(box(1,2));

使用变量初始化函数
var box = function(num1,num2)
{
return num1+num2;
};

alert(box(1,2));

使用NEW的构造函数来声明
var box = new Function('num1','num2','return num1+num2');
alert(box(1,2));

2.作为值的函数
不是作为函数来传递的,而是作为函数的返回值来传递
function box(sum,num)
{
return sum + num;
}

function sum(num)
{
return num + 10;
}

var result = box(sum(10),10); //sum(10)这里传递的是函数的返回值和普通的变量一样
alert(result);

将函数当成参数传递给另一个函数

function box(sum22,num55)
{
return sum22(num55);
}

function sumj(num)
{
return num + 12; //返回22
}

var result = box(sumj,10); //这里sumj是一个函数,当作参数传递到另外一个函数里,而不是函数的返回值。
alert(result);

3.函数内部属性
arguments.callee调用自己本身的函数
function box(num)
{
if(num <= 1)
{
return 1;
}else{
return num * arguments.callee(num-1); //使用arguments.callee,调用自身,实现递归
}
}
alert(box(5));

window是一个对象,而且是JS里面最大的对象,是最外围的对象
//alert(typeof window); window是对象,类型是对象
//alert(this); [object Window] this目前表示的是window,因为在window的范围下
//alert(typeof this); //和window一样,所以this就是window

var color = '红色的'; //这里color就是全局变量,而这个变量又是window的属性
alert(window.color); //alert打印出color,说明color是window下的属性。
alert(this.color); //同上

window.color = '红色的'; //相当于var color = '红色的';。
alert(this.color);

var box = {
color:'蓝色的', //这里的color是box下的属性,也就是局部变量
sayColor:function(){
alert(this.color); //这里this,代表的是box对象。
}
};
box.sayColor();

4.函数属性和方法
function box(name,age)
{
return name + age;
}
alert(box.length);

function box(num1,num2)
{
return num1 + num2;
}
function sum(num1,num2) //apply和call可以冒充另外一个函数
{
return box.apply(this,[num1,num2]); //this表示window作用域,[]表示传递的参数
}
function sum2(num1,num2)
{
return box.apply(this,arguments); //这个可以当数组传递,arguments
}
alert(sum(10,10));

function box(num1,num2)
{
return num1 + num2;
}
function sum(num1,num2)
{
return box.call(this,num1,num2); //call只是传递参数不同,其他和apply一样
}
alert(sum(10,10));

var color = '红色的'; //全局
var box = { //局部
color:'蓝色的'
};
function sayColor(){
alert(this.color);
}
sayColor.call(window); //window下
sayColor.call(this); //this就是window
sayColor.call(box); //作用域在box对象里面

JS—Function类型的更多相关文章

  1. JS Function类型

    每个函数都是Function类型的实例,由于函数是对象,函数名实际上是一个指向函数对象的指针,不会与某个函数绑定. 1.函数的声明: (1)函数声明语法: function sum (num1,num ...

  2. 【笔记】js Function类型 内部方法callee

    运用function实现阶乘 以往的做法是如下的 function factorial(num){ if(num <= 1){ return 1; }else{ return num * fac ...

  3. 【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型

    前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 ...

  4. js判断类型方法

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null,Boolean, Number和String:复杂数据类型是Object,Object中 ...

  5. JavaScript高级 Function类型

    ·    Function类型 (属于引用类型) 1.JS中,有的函数均是对象,这个一个非常有特点的地方.它既然是对象,那么它的构造函数是谁呢?就是Function.(例如:function Pers ...

  6. JavaScript中的Function类型浅析

    1. Function类型是js中引用类型之一,每个函数实际上都是Function类型的实例对象,具有自己的属性和方法.正因为函数式对象,所以函数名实际上也是一个指向函数对象的指针. 2. 常用的函数 ...

  7. JavaScript之Function类型

    1. 创建方式 //1.函数声明 function sum(num1,num2){ return num1+num2; } //2.函数表达式 var sum = function(num1,num2 ...

  8. Javascript高级编程学习笔记(16)—— 引用类型(5) Function类型

    JS中许多有趣的地方都和函数脱不了联系 那么是什么让JS中的函数这么有趣呢? 我们一起来看看吧 Function类型 在JS中函数实际上就是对象,每个函数都是Function类型的实例,和JS的其他引 ...

  9. JS 强制类型转化

    在Js中, 强制类型转化分为两种情况: 一种是引用类型转化基本类型, 如数组转化成数字:一种是两种不同基本类型之间的转化,如字符串转化为数字.你不能将基本类型转化成引用类型,比如,不可能把数字转化为数 ...

随机推荐

  1. 【学习Koa】原生koa2 静态资源服务器例子

    实现思路 首先读取当前路径下所有的文件和文件夹 当去点击某个列表项时判断其实文件还是文件夹,文件的话直接读取,文件夹则再次利用上一个步骤读取并展示 文件结构 代码 index.js 入口文件 cons ...

  2. html语一化/块/行级元素

    html文件不区分大小写.//vue项目中组件名字驼峰 使用时候却全部小写 说明不区分 html语义化的意思, 就是标签名带有一定含义和一些css样式.比如h1-h6是标题 自动放大变粗,img是图片 ...

  3. Spring(5) -(14) pointcut 语法

    AOP的规范本应该由SUM公司提出,但是被AOP联盟捷足先登.AOP联盟指定AOP规范,首先就要解决一个问题,怎么表示切入点,也就是在哪些方法上增强(where) AspectJ 是一个面向切面的框架 ...

  4. SASS - 操作符

    SASS – 简介 SASS – 环境搭建 SASS – 使用Sass程序 SASS – 语法 SASS – 变量 SASS- 局部文件(Partial) SASS – 混合(Mixin) SASS ...

  5. 201771010123汪慧和《面向对象程序设计Java》第十五周实验总结

    一.理论部分 1.JAR文件 (1)Java程序的打包:程序编译完成后,程序员将.class文件压缩打包为.jar文件后,GUI界面 程序就可以直接双击图标运行. (2).jar文件(Java归档)既 ...

  6. axios基础介绍

    axios基础介绍 get请求要在params中定义,post要在data中定义.

  7. org.springframework.test.context.junit4.SpringJUnit4ClassRunner

    项目中有了spring-test的依赖,里面确实也有 org.springframework.test.context.junit4.SpringJUnit4ClassRunner 此类,但是项目就是 ...

  8. 【无网条件下】Linux系统、jdk、redis及集群、rabbitmq、nginx、weblogic和oracle安装及配置

    本篇文章为原创,仅供参考使用,如果需要文章中提到的所有软件安装包和依赖包(即data),请以博客园邮箱联系获取链接. 准备资料 软件 主要软件包版本 路径 系统镜像 CentOS-6.10-x86_6 ...

  9. dbcp连接池的一些方法

    创建连接 // 简写版: Connection conn =null; Statement st =null; conn = DBCP.getConnection(); st=conn.createS ...

  10. python中的单元测试模块unittest

    unittest的属性: 该文以思维导图的形式描述unittest的重要属性. 其中前四个是unittest最核心的三个属性. testcase:测试用例: testsuite:测试套件,多个测试用例 ...