首页 > web前端 > js教程 > 正文

javascript定义函数的几种类型是什么

WBOY
发布: 2022-03-10 14:57:06
原创
2669人浏览过
在JavaScript中定义函数的几种类型:1、利用function关键字通过声明或表达式定义函数,语法为“function functionName(parameters){执行的代码}”;2、利用函数构造器Function()构造函数。

javascript定义函数的几种类型是什么

本教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

javascript定义函数的几种类型是什么

JavaScript 使用关键字 function 定义函数。

函数可以通过声明定义,也可以是一个表达式。

函数声明

立即学习Java免费学习笔记(深入)”;

在之前的教程中,你已经了解了函数声明的语法 :

function functionName(parameters) {
  执行的代码
}
登录后复制

函数声明后不会立即执行,会在我们需要的时候调用到。

函数构造器

函数构造器用于创建一个函数对象,在JavaScript中实际上每一个函数都是一个函数对象。

函数构造器的语法:

new Function ([arg1[, arg2[, ...argN]],] functionBody)
登录后复制

arg1, arg2, ... argN  被用于作为函数正常参数名的变量名字,这些变量名必须是符合JavaScript变量标识规范的表示单个变量的字符串或者以逗号分隔的表示多个变量的字符串,比如"x", "theValue", or "a,b"。

functionBody   包含函数定义的JavaScript语句的字符串。

描述

1.函数对象在函数构造器被解析成为函数的时候被创建。但是这样会比以函数声明、函数表达式等方式低效,因为这些函数时通过代码直接解析的。

2.传递给函数构造器的字符串参数都会被当作函数构造器生成函数的变量参数名字,以他们出现的顺序作为生成的函数的参数的顺序。

3.以函数的方式调用函数构造器(不管用不用new关键词修饰)效果一样。

例子

// Example can be run directly in your JavaScript console
// Create a function that takes two arguments and returns the sum of those arguments
var adder = new Function('a', 'b', 'return a + b');
// Call the function
adder(2, 6);
// > 8
登录后复制

 参数a和b是可以在函数体内使用的正常的参数名字。

生成的函数为:

function (a,b){undefined
  return a+b;
}
登录后复制

关于json解析的一种方式:var json = (new Function("return " + str))();

原理一样,

生成的函数为:

function toJson(str){undefined
   return str;
}
var str="{'a':1,'b':'abc'}";
toJson(str);
登录后复制

即:function(){return {'a':1,'b':'abc'}}

函数构造器和函数声明的区别:

用函数构造器创建的函数不会在上下文中创建闭包,它们总是被创建在全局作用域中,当执行被创建的函数时,它们只能使用自己的局部变量或者全局变量,这和eval是不同的。

相关推荐:javascript学习教程

以上就是javascript定义函数的几种类型是什么的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号