js系列-函数Function

layui use 定义js外部引用函数的方法 今天小编就为大家分享一篇layui use 定义js外部引用函数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 立即下载

先思考几个问题:

1.函数是什么

2.怎么定义函数

函数是对象

函数是Function的实例对象,函数名是指针,通过下面这种方式定义函数很容易理解这句话:

let fun = new Function('a','b','c','return a+b+c');

Function是构造函数,括号内为参数,最后一个参数始终会被解析为函数体。

定义函数

//函数声明方式
function user(){
    console.log('user')
}
//声明变量方式
let user = function() {
    console.log('user')
}

注意:标准声明优先级高于赋值声明

//标准声明优先级高于赋值声明
user('WoNiuJun');//function:WoNiuJun
//函数声明方式
function user(name){
    console.log('function:' + name)
}
//声明变量方式
var user = function(name) {
    console.log('var:' + name)
}

匿名函数

经常用到

let arr = [1, 2, 3].filter((item,index) => item > 1);
console.log(arr);//[2,3]

立即执行函数

函数定义时立即执行

默认参数

//以前我们需要在函数中使用管道符||赋值
function add(a,b){
    b = b || 3;
    console.log(a+b);
}
add(1);//4
//现在我们可以使用默认值
function total(a,b=3){
    console.log(a+b);
}
total(1);//4

arguments

arguments 是函数参数集合(类数组)

//以前我们可以通过arguments获取传递的多个参数
function add() {
   return [...arguments].reduce((total,item) => total + item,0);
}
console.log(add(1,2,3));
//现在我们可以用展开语法接收多个参数
function add1(...args) {
   return args.reduce((total,item) => total + item,0);
}
console.log(add1(1,2,3));

箭头函数

箭头函数是函数声明的简写形式,有下面几种情况表现形式。

无参数时使用空扩号即可

let sum = () => {
	return 1 + 2;
}
console.log(sum()); //3

函数体为单一表达式时不需要 return 返回处理,系统会自动返回表达式计算结果。

let sum = () => 1 + 2;
console.log(sum()); //3

只有一个参数时可以省略括号 

let small = [1, 2, 3, 5].filter(item => item <= 3);
console.log(small);

this指向

调用函数时 this 会隐式传递给函数指函数调用时的关联对象,也称之为函数的上下文。其实结合上面讲的arguments,我们可以知道调用函数时会默认传递两个对象一个是this,一个是arguments。

函数调用

'use strict'
function user(){
    console.log(this);//非严格模式下:Window {window: Window, self: Window, document: document, name: "", location: Location, …}
    console.log(this);//严格模式下:undefined
    console.log(arguments);//Arguments [callee: ƒ, Symbol(Symbol.iterator): ƒ]
}
user();

箭头函数

箭头函数中的this指向定义函数时的所在的上下文

let user = {
  name: 'Tom',
  getName: ()=>{
      console.log(this.name);//Tom
  }
}

call

改变this,即改变函数上下文。

有这样一个场景,有一个Tom对象,他需要一个计算年龄的方法,但他自身没有,刚巧有一个User函数有这个计算年龄的方法,Tom就想借用User的方法,这时call就派上用场了,用代码实现就是:

function User(age){
    this.age = age;
    this.getTenAfterAge = ()=>{
        return this.age + 10
    }
}

let Tom = {name:'Tom'};

User.call(Tom,20);//改变User中的this上下文,即this指向Tom
console.log(Tom.getTenAfterAge());//30

call和apply

call与apply 两个方法作用一样都是改变this指向,只是在传递参数上不同。

  • apply 用数组传参
  • call 需要分别传参

bind和call/apply

bind()是将函数绑定到某个对象

  • 与 call/apply 不同bind不会立即执行
  • bind 是复制函数形为会返回新函数
手把手调试Altera FPGA远程升级:从ASMI扇区擦除到Remote Update IP配置的避坑实录 本文详细解析了Altera FPGA远程升级的全流程,重点介绍了Cyclone IV系列FPGA的ASMI扇区擦除和Remote Update IP配置的实战技巧。通过双镜像架构设计、ASMI IP核优化配置及Remote Update IP的隐藏参数设置,帮助开发者避免常见陷阱,提升远程升级的可靠性和效率。 阅读详情

相关推荐

瑞萨单片机-硬件I2C从设备

瑞萨单片机上实现I2C从机,根据主机发来的数据,从机返回或者保存数据2、R5F1115AxFL最多支持3个从设备地址(即可以作为三个从设备)3、从接收模式:直接将数据保存到RAM中,接收完再处理4、从发送模式:按照I2C读取传感器数据经验,主机读取从设备时,从设备需要立刻返回数据的,但是程序要如何实现一收到指令就返回特定的数据?(时钟拉伸)这里先跳过,我们先实现返回固定的数据。

qq_27893147的博客 3219

JavaScript的函数(function)

目录 函数的基本概念 概念: 理解: 优点: 函数的基本语法 声明式: 赋值式: 调用: 函数的参数 一个参数时 多个参数时 函数的返回值 函数的返回值return 简单的理解return 为什么要有return return的作用 函数的基本概念 概念: 实现功能效果的代码块 理解: 将需要的程序,封装定义在一个函数中,通过调用函数调用相对应的程序。 优点: 封装一次。多次调用,有更好的可操作性和可维护性。 函数的基本语法 声明式: ...

qq_45799465的博客 6628

五子棋AI算法第一篇-我对谷歌Alphago的看法

最近Google宣布他们的围棋AI以5:0的战绩打败欧洲围棋三冠王。我一直对人工智能比较感兴趣,正好趁年前空闲的几天用JS写了一个五子棋的AI。其实很久以前就用自创的算法写过一个JAVA版的五子棋AI,不过棋力很不理想。这次用的是JS写的,所以无论任何平台上只要能打开网页的都可以玩。google爆出这个新闻之后,很多人觉得这是不是意味着电脑智商已经在人类之上了,围棋已经没有意义了之类的。甚至觉得这是

言川的博客 2万+

js函数作参数

参照以下例子 例1: function add(a, b) { console.log( a + b); } function subtract(a, b) { console.log( a - b); } function getStr() { console.log('hello') } // 函数作参数传递,函数的参数以数组形式传 function use(f...

xiaobaige6084的博客 390

Bulk / Smart-seq2数据分析一般流程

Bulk RNA-seq(RNA-Seq of bulk samples)是一种RNA-Seq技术应用,它是通过将整个组织或细胞群体的RNA提取并混合,进行高通量测序来分析基因表达的技术。转录本定量结果可以用于后续的差异表达分析和聚类分析。功能注释和富集分析:对差异表达基因进行功能注释和富集分析,以帮助理解差异表达基因的功能和调控网络,从而获得对研究样品的更深入的理解。数据可视化:最后,将聚类分析的结果进行可视化,可以使用常见的数据可视化工具,如ggplot2、Plotly等,来帮助用户更好地理解数据。

weixin_54519672的博客 5348

PX4无人机实战:手把手教你用MAVROS实现Offboard模式(附避坑指南)

本文提供了一份详尽的PX4无人机Offboard模式实战指南,重点解析了如何通过MAVROS实现从仿真到实机的控制。内容涵盖硬件连接、串口权限设置、MAVROS配置、核心代码编写以及实机操作全流程,并附有详细的避坑指南和故障排查手册,帮助开发者快速掌握ROS与PX4飞控的集成开发。

weixin_29172201的博客 266

【JavaScript】 函数 function

也就是说,传入函数的原始值的地址,因此在函数内部修改参数,将会影响到原始值。函数参数不是必需的,JavaScript 允许省略参数,但是,没有办法只省略靠前的参数,而保留靠后的参数。只要闭包没有被垃圾回收机制清除,外层函数提供的运行环境也不会被清除,它的内部变量就始终保存着当前值,供闭包读取。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。如果函数内部修改的,不是参数对象的某个属性,而是替换掉整个参数,这时不会影响到原始值。所以,闭包可以看作是函数内部作用域的一个接口。

小数点儿_ 3441

Windows安装 OpenClaw详细教程(使用wsl2+ubuntu)

OpenClaw 是一款于 2026年1月 正式对外开源的个人AI助手平台(AI Agent),由 PSPDFKit 创始人彼得·斯坦伯格(Peter Steinberger) 开发。它不仅仅是一个聊天机器人,更是一个能够主动执行任务的“数字管家”。OpenClaw的核心特点是本地化部署、隐私可控以及强大的自动化执行能力。OpenClaw 项目在开发过程中经历过两次更名,最终定为现名:初名:Clawdbot(因与 Claude 名称过于相似引发侵权争议而改名)。

猿小白的博客 1006

JavaScript-函数(Function)

JavaScript函数(Function)

StupidlyGrass的博客 5517

【Halcon-1D测量】measure_pairs 函数功能(用于提取垂直于矩形/环形弧主轴的直边对)

HALCON算子measure_pairs是1D测量模块的基础工具,专用于提取垂直于矩形/环形弧主轴的直边对。该算子通过振幅阈值和灰度过渡规则(如positive/negative)进行边对分组,支持_strongest后缀选择最强边缘避免误配对。输出包含边缘坐标、振幅及内外间距(IntraDistance/InterDistance)。关键限制包括仅适用于直边、Sigma需≤0.5×测量长度,且忽略图像域。相比模糊版本算子,它更适用于边缘清晰的简单场景(如电子元件间距测量)。典型应用需配合gen_meas

weixin_45590420的博客 303

SAP_SD模块-销售批次策略应用记录

SAP_SD模块-销售批次策略完整案例

风沙的博客 2609

js中use或者using方法

看Vue.use方法,想起了以前工作中别人用过的use方法。 var YANMethod = { using:function() { var a = arguments, o = this, i = 0, j, d, arg, isExist; arg = a[0], isExist = a[1]; if (arg ...

2593

利用AWVS进行反制

awvs 10.5下载 http://www.32r.com/soft/12986.html

渗透之路,攻防之间皆学问 6652

JavaScript系列-函数(function)

提示:函数是 JavaScript 中的基本组件之一,通常是用来完成一件具体的任务最小单元提示:箭头函数表达式相比普通函数表达式,具有较短的语法并且没有自己的this、arguments对象、super和new.target,箭头函数是匿名的除此之外,箭头函数还有以下特征箭头函数不能用作构造函数。使用 new 调用它们会引发 TypeError。它们也无法访问 new.target 关键字。箭头函数不能在其主体中使用 yield,也不能作为生成器函数创建。

1030

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JavaScript系列学习笔记3 —— 函数function

目录 一、概念详解 二、函数的构建与调用 构建函数的基本概念 - 详细解读 构建函数的几种方式 匿名函数 函数调用的几种方式 三、作用域与上下文 四、调用顺序 五、特殊的函数 ...

LaoYe的博客 510

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

js面向对象系列——Function函数对象

Function到底是什么东西? 1. Function是最顶层的构造器,它构造了系统中所有的对象,包括Object(Object是最顶层的对象,但要明确的知道Object也是一个函数,也是有Function构成的),Array,Date等 2. 一切都是对象,所以理论上理解Function也是一个对象,我们可以称为函数对象 这里简单介绍一下另一个重要的工具:instanceof ...

Mr_xiao1001的博客 189

JavaScript系列----函数(Function)篇(4)

1.什么是函数? 在W3C中函数的定义是这么说的:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 诚然,从这种抽象的定义中我们得不到什么有价值的东西。下面,举例来列举出函数的几种定义方式: function add(num1, num2) { return num1 + num2; } var add = function (num1, n...

weixin_30407099的博客 215

JavaScript简餐——初识函数

文章目录前言初始函数1.函数声明2.函数表达式3.箭头函数(ES6新特性)4.使用Function构造函数总结 前言 写本《JavaScript简餐》系列文章的目的是记录在阅读学习《JavaScript高级程序设计(第4版)》一书时出现的各个知识点。虽是对读书的笔记和总结,但是希望它轻量、简洁、犀利,不会引起阅读疲劳,可以在碎片化时间和闲暇之余轻巧地沐浴一下知识点。每篇文章只针对一个小部分进行讲解式的梳理,来达到个人复习总结和分享知识的目的。 初始函数 函数,实际上它是对象。每个函数都是Functi

igodmeetu的博客 607

JS | 函数柯里化

行为对象目的触发条件原始函数执行目标函数参数数量足够柯里化函数自身递归收集参数参数不够例题:牛客 JS56 返回函数。

weixin_42479421的博客 651

Prototype 学习——Function对象

这个对象就是对function的一些扩充,最重要的当属bind方法,prototype的帮助文档上特意说了一句话:Prototype takes issue with only one aspect of functions: binding.其中wrap方法也很重要,在类继承机制里面就是利用wrap方法来调用父类的同名方法。  argumentNames bind bindAsE

Challenge Next Challenge 1375

JavaScript- The Good Parts function Curry

Functions are values, and we can manipulate function values in interesting ways.Currying allows us to produce a new function by combining a function and anargument: var add1 = add.curry(1); docum...

weixin_34235105的博客 97

深入理解JavaScript系列(转自汤姆大叔)

深入理解JavaScript系列(转自汤姆大叔) 深入理解JavaScript系列文章,包括了原创,翻译,转载,整理等各类型文章,如果对你有用,请推荐支持一把,给大叔写作的动力。 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 深入理解JavaScript系列(2):揭秘命名函数表达式 深入理解...

weixin_30869099的博客 91

【JavaScript】深度理解js的函数(function、Function)

声明一个函数(Function对象)有很多种方式。如果一个函数中没有使用 return 语句,则它默认返回undefined。要想返回一个特定的值,可以使用return 返回。有了函数,js就算玩出花来,也可以有条理性。

qq_2511276124的博客 3740

[Javascript]:JS数据类型、类型判断、函数function与Function的使用

因为之前学过Java,在学习JS时,对JS的数据类型、function和Function的使用概念容易搞混淆,理解不怎么深刻。遂将这些知识点和概念梳理一遍,以便自己和他人理解。如有错误,敬请谅解。       知识点会涉及到:JS数据类型、JS的类型判断方式、函数创建方式、function与Function的区别、匿名函数的使用、函数特点以及函数重载问题。 Javascript数据类型

我只是个程序员。 1万+

js里function的几种用法

1.最基本的作为一个本本分分的函数声明使用。 function func(){} 或 var func=function(){}; 2.作为一个类构造器使用: function class(){} class.prototype={}; var item=new class(); 3.作为闭包使用: (function(){ //独立作用域 })(); 4.可以...

honghaiash的博客 2万+

JavaScript函数(Function)

JavaScript函数 函数(Function)方法的声明无参函数有参函数函数可以作为参数传递回调函数函数做为返回值arguments变量作用域函数作用域变量和函数的声明提前 函数(Function) 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 方法的声明 function 名字(参数列表...){ //语句块 } //调用 方法名字() 实例↓ function sayHi(){ console.log('hello JavaScript') } sayHi

『愚』的博客 4196
上一篇: js系列-Map和WeakMap
下一篇: js系列-闭包
前端蜗牛君
博客等级 码龄10年 274粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值