JavaScript 函数的定义-调用、注意事项
发布时间 - 2026-01-11 00:40:29 点击率:次函数定义

函数语句定义
function(a,b){
return a+b;
}
表达式定义
var add = function(a,b){return a+b};
//函数表达式可以包含名称,这在递归时很有用 var f = function fact(x){ if(x<=1) {return 1; }else { return x*faxt(x-1); } }
以表达式方式定义的函数,函数的名称是可选的。如果函数定义表达式包含名称,函数的局部作用域将会包含一个绑定到函数对象的名称,实际上,函数的名称将成为函数内部的一个局部变量
函数命名规范
1.like_this()第一个字符为小写,当包含多个单词时候,单词以下划线分割
2.likeThis()第一个字符为小写,当包含多个单词时候,除第一个单词以外的单词首字母使用大学字母
3.内部函数或私有函数,通常以一条下划线为前缀
注:函数声明语句‘被提前到外部脚本或外部函数作用于顶部,所以可以被在它定义之前出现的代码所调用
以表达式方式定义函数前必须把它赋值给一个变量。所以表达式方式定义的函数在定义之前是无法调用的
函数返回值
- return语句返回函数的值给调用者。
- return语句没有,则它返回undefined
嵌套函数
- 嵌套函数可以访问他们的函数的参数和变量
- 但是嵌套函数不能出现在循环、条件判断,或者try/cache/finally/with语句中
函数调用
- 作为函数
- 作为方法
- 作为构造函数
- 通过他们的call()和apply()方法间接调用
作为函数调用
add(1,2)
根据ECMAScript3和非严格的ECMAScript5对函数调用的规定,调用上下文(this的值)是全局对象。然而在严格模式下,调用上下文则是undefined。
//定义一个函数且调用一个函数来确定当前脚本运行是否为严格模式
var strict = (function(){return this;}());
作为方法调用
var o = {
m:1,
n:2,
add:function(){
this.result = this.m+this.n;
}
}
方法调用和函数调用的一个重大区别。----调用上下文
o.add() add的调用上下文为o,即:this
o.add() 等同于o['add']()
方法链:当方法并不需要返回值时候,最好直接返回this
this为一个关键字,不是变量,也不是属性名。JavaScript语法不允许给this赋值
和变量不同,关键字this没有作用于的限制,嵌套的函数不会从调用它的函数中继承this,如果想访问外部函数的this,var self= this;保存在变量中
如果嵌套函数作为函数调用,其this的值指向调用它的对象。如果作为函数调用,this不是全局对象(非严格模式),就是undefined(严格模式)
构造函数调用
var o = new Object();
构造函数调用和普通函数调用以及方法调用在实参处理。调用上下文和返回值等方面都有不同。
凡是没有形参的构造函数调用都可以省略圆括号。
var o = new Object(); var o = new Object; //等价
构造函数调用创建一个新的空对象,这个对象继承自构造函数的prototype属性,这个函数试图初始化这个新创建的对象,病将这个对象做为上下文,因此构造函数可以使用this关键字来引用这个新创建的对象。
new o.m() 调用的上下文并不是o.
构造函数并不使用return。如果构造函数显示的使用return语句返回一个对象,那么调用表达式的值就是这个对象。如果构造函数但并没有返回值,或者返回一个原始值,那么就会忽略返回值,同时使用新对象作为返回结果。
间接调用
call()
appy()
# js
# 函数的定义
# JavaScript:new 一个函数和直接调用函数的区别分析
# JavaScript函数的4种调用方法实例分析
# 深入学习 JavaScript中的函数调用
# 浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
# javascript函数的四种调用模式
# Javascript 函数的四种调用模式
# 深入理解JavaScript中的尾调用(Tail Call)
# javascript使用call调用微信API
# 基于JavaScript实现继承机制之调用call()与apply()的方法详解
# javaScript call 函数的用法说明
# JavaScript中的apply和call函数详解
# JavaScript直接调用函数与call调用的区别实例分析
# 返回值
# 第一个
# 他们的
# 多个
# 递归
# 作用于
# 一个函数
# 就会
# 都有
# 将会
# 则是
# 出现在
# 下划线
# 等方面
# 把它
# 可以使用
# 可选
# 这在
# 绑定
# 创建一个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
制作企业网站建设方案,怎样建设一个公司网站?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何在阿里云完成域名注册与建站?
如何实现建站之星域名转发设置?
在Oracle关闭情况下如何修改spfile的参数
Swift中swift中的switch 语句
香港服务器如何优化才能显著提升网站加载速度?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
如何在VPS电脑上快速搭建网站?
制作公司内部网站有哪些,内网如何建网站?
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
大连 网站制作,大连天途有线官网?
Bootstrap整体框架之CSS12栅格系统
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
海南网站制作公司有哪些,海口网是哪家的?
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
Laravel怎么为数据库表字段添加索引以优化查询
如何快速选择适合个人网站的云服务器配置?
简单实现Android验证码
如何在阿里云购买域名并搭建网站?
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
jquery插件bootstrapValidator表单验证详解
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Python正则表达式进阶教程_复杂匹配与分组替换解析
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
如何获取免费开源的自助建站系统源码?
原生JS实现图片轮播切换效果
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
如何快速查询网址的建站时间与历史轨迹?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
Laravel如何实现事件和监听器?(Event & Listener实战)
如何在橙子建站中快速调整背景颜色?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
WEB开发之注册页面验证码倒计时代码的实现
如何快速搭建自助建站会员专属系统?
音乐网站服务器如何优化API响应速度?
使用豆包 AI 辅助进行简单网页 HTML 结构设计

