JS 之 Function类型

RK3576 SD卡GPIO检测实战:设备树配置与避坑指南 在嵌入式Linux开发中,GPIO与设备树是硬件资源管理的核心机制,其原理是通过设备树描述硬件连接,由内核驱动解析并控制GPIO行为。掌握GPIO检测技术能显著提升外设热插拔的可靠性,广泛应用于工业数据采集、边缘计算等场景。SD卡作为常见存储介质,其插拔检测常依赖CD引脚,当CD脚复用为普通GPIO时,需在设备树中正确配置cd-gpios属性并处理电平极性。本文围绕RK3576平台,深入剖析GPIO检测SD卡插拔的实现细节,涵盖中断与轮询两种方式,并分享电平抖动、供电不足等典型问题的排查经验,助力开发者高效 阅读详情

在JS中,函数都是对象,都是Function类型的实例,有自己的属性和方法。因此函数名也像其他引用类型一样,是一个指向函数对象的指针。

定义函数有三种方式:

1、函数声明(有函数声明提升)

function add(num1,num2){
    return num1+num2;
}

2、函数表达式(无函数声明提升)

var add=function(num1,num2){
    return num1+num2;
};

3、Function构造函数(不推荐)

var add=new Function("num1","num2","return num1+num2;");

最后一个参数始终被认为是函数体,前面的所有参数均被认为是参数。该方法会导致两次解析代码:1、常规解析ECMAScript代码 2、解析传入构造函数的字符串,影响性能。

因为函数名仅仅是指向函数对象的指针,所以可以被当成参数或者返回值。

例1: 将add作为参数传入op函数

function op(func,arg){
    return func(arg);
}

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

console.log(op(add,20));        //返回30

例2: 从一个函数返回另一个函数

//实现根据对象的某个属性对一个对象数组进行排序

function compare(arg){
    return function(obj1,obj2){
        var val1=obj1[arg];
        var val2=obj2[arg];
        if(val1<val2){return -1;}                //升序
        else if(val1>val2){return -2;}
        else{ return 0; }
    }
}

var objArray=[{name:"master",age:18},{name:"Tom",age:16}];

objArray.sort(compare(age));                    //根据年龄进行比较

console.log(objArray[0].name);                  //输出"Tom"

函数内部属性:

函数内部有两个特殊的对象:arguments 和 this

1、arguments对象是一个类数组对象,里面保存着函数的参数,该对象还有一个callee属性(严格模式下访问该属性会报错),是一个指针,指向拥有该arguments的函数。

比如:一个递归函数,被删掉函数名后......

function dg(num){
    if(num<=1){ return 1; }
    else{
        return num*dg(num-1);
    }
}

var other=dg;
dg=null;
other(10);                    //报错,因为函数内部调用了dg,可是dg已不存在

//所以,应该将函数内部的dg换为arguments.callee(num-1);

2、this引用的是函数执行的环境对象。

3、caller属性,指向调用当前函数的函数的引用

function outer(){
    inner();
}

function inner(){
    alert(inner.caller);
}

outer();        //alert 弹出 outer的源代码

inner.caller == arguments.callee.caller;

函数属性和方法:

1、length 表示函数期望接受的命名参数的个数。

2、prototype 属性 是不可枚举属性,用for-in无法发现。

3、apply( ) 和 call( ) 这两个是非继承而来的函数。在特定的作用域中调用函数,实际上是设置函数体内this对象的值。

function sum(num1,num2){
    return num1+num2;
}

function op(num1,num2){
    return sum.apply(this,arguments);
}

op(10,20);                //返回30

sum.apply 修改了sum函数体内的this对象的值。call用法类似,只是call需要一个一个传参,apply要传一个参数数组。

这两个函数真正强大的地方是“扩充函数赖以运行的作用域”

var color="red";
var o={ color:"blue" }

function sayColor(){
    console.log(this.color);
}

sayColor.call(this);       //显示red

sayColor.call(window);     //显示red

sayColor.call(o);          //显示blue,在这里sayColor的函数作用域就被调到了o对象中。

使用call和apply来扩充作用域的好处就是对象不需要与任何方法有任何的耦合关系。

4、bind( ) 方法,该方法会创建一个 调用它的函数 的实例,其this值指向参入的参数。

var color="red";
var o={ color:"blue" }

function sayColor(){
    console.log(this.color);
}

var other=sayColor.bind(o);

other();            // blue

 

JavaScript中Function类型有哪些 在JavaScript中,函数属于一种特殊的对象类型,称为Function类型。JavaScript中Function类型有多种形式,包括声明式函数、函数表达式、构造函数和箭头函数。您可以根据具体的需求的需求选择适合的函数类型,并根据函数的作用和复杂度来确定使用哪种方式定义函数。函数表达式是另一种常见的函数定义方式。这种方式创建的函数对象可以具有自己的属性和方法。由于箭头函数只有一个参数和一个表达式,因此可以省略参数括号和函数体的花括号。语法创建了一个新的函数对象,并将函数体作为字符串传递给构造函数。 阅读详情

相关推荐

【嵌入式原理系列-第七篇】ld脚本实战:从零构建MCU内存布局

本文是一篇针对嵌入式开发者的实战指南,详细讲解了如何从零开始为MCU编写ld链接器脚本以构建自定义内存布局。文章以STM32F103C8T6为例,深入剖析了MEMORY和SECTIONS指令的用法,并提供了OTA分区、非易失数据存储等高级定制案例,帮助开发者解决实际工程中的Flash与RAM管理难题,实现对程序运行的深度掌控。

weixin_29271263的博客 249

JS基础——Function类型总结

Function类型 在JavaScript中,函数是一种特殊的对象。每一个函数都是一个Function类型的实例,而且与其它的引用类型一样,都有属性和方法。 由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会于某一个函数绑定。理解这一点,对于函数的学习至关重要。 函数有三种定义语法 使用函数声明语法定义 function sum (num1, num2){ return num1 + num2; }; 使用函数表达式定义 var s

一只彩乌鸦 2658

复旦微FMQL45T900平台RGMII网口调试实战:从PHY寄存器读取异常到链路建立

本文详细记录了复旦微FMQL45T900平台RGMII网口调试的全过程,重点解决了PHY寄存器读取异常问题。通过电压配置调整、时序优化和硬件信号完整性检查,最终成功建立网络链路。文章提供了实用的调试经验和解决方案,适合嵌入式开发人员参考。

weixin_29193359的博客 288

javaScript中Function 类型

1. 定义方式 函数声明语法 function sum (num1, num2) { return num1 + num2; } 函数表达式 var sum = function(num1, num2){ return num1 + num2; }; Function 构造函数 Function 构造函数可以接收任意数量的参数, 但最后一个参数始终都被看成是函数体,而前面的参数...

qq_35456400的博客 346

从ST电机库到TI InstaSPIN:手把手对比两种主流FOC实现中的坐标变换差异

本文深入对比了ST电机库与TI InstaSPIN在FOC实现中的坐标变换差异,包括坐标系定义、变换系数和角度处理等关键点。针对BLDC和PMSM电机控制,提供了从理论到实践的移植方案,帮助工程师快速解决平台切换中的性能问题。特别解析了Clarke/Park变换在两种实现中的微妙差异及其对PI控制的影响。

weixin_28724661的博客 398

AUTOSAR实战:手把手教你配置EthTsync模块,搞定车载以太网时间同步

本文详细解析AUTOSAR架构中EthTsync模块的配置方法,实现车载以太网时间同步。通过对比gPTP与PTP协议差异,提供从开发环境准备到参数配置、模块集成的全流程指南,并分享性能优化与调试技巧,帮助开发者实现微秒级同步精度,满足自动驾驶等高精度时间同步需求。

weixin_28736335的博客 375

js基础——function类型

1、函数声明方式1)普通声明方式function box(num1,num2){ return num1 + num2;}2)使用变量初始化函数var box = function(num1,num2){ return num1 + num2;}3)使用function构造函数var box = new Function('num1','num2','return num1 ...

weixin_33674976的博客 185

从零到一:如何用YOLOv8和PyQt5打造你的第一个花卉识别桌面应用

本文详细介绍了如何使用YOLOv8和PyQt5从零开始构建一个花卉识别桌面应用。涵盖环境搭建、数据准备、模型训练、界面设计、模型集成与性能优化等全流程,帮助开发者快速掌握深度学习目标识别技术的实际应用。

weixin_29048775的博客 454

JavaScript的Function 类型

一,Function定义   Function实际上是对象,与其他引用类型一样具有属性和方法。Function可以通过三种方法进行定义,分别是函数声明语法定义,函数表达式定义和Function构造函数定义。   1.函数声明语法定义 function functionName(value1...){ //函数体 }   2.函数表达式定义 var fun...

apl2015的博客 271

目标检测YOLO实战应用案例100讲-基于激光雷达点云的三维目标检测算法研究

近几年来,在计算机视觉领域,利用深度学习卷积神经网络技术来实现各种任务的算法越来越多。毫米波雷达、相机、激光雷达、超声波雷达等车载传感器生产成本的降低,汽车的自动驾驶技术得到了飞速发展,在我们的日常生活中经常能看到该技术辅助汽车驾驶员进行行车。和非自动驾驶汽车相比,自动驾驶汽车存在诸多优点,如进一步减少交通事故,保障人身安全;提供安全合理的路线,避免交通拥堵;采用清洁无污染的电能作为汽车新能源,从而降低大气污染等。现如今,自动驾驶技术已经逐渐深入到各个领域并发挥着关键的作用。

qq_36130719的博客 3731

2025年09月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析

2025年09月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析

伶俐角少儿编程 516

js引用类型-Function类型

函数实际上都是对象,每个函数都是 Function 类型的实例,且与其他引用类型一样具有属性和方法。 由于函数是对象,因此,函数名实际上是一个指向函数对象的指针,不会绑定某个函数。 创建函数的方式 1、函数声明 :通常都是使用函数声明的方式创建函数 function name(params) { console.log("111"); } 2、函数表达式 :在使用函数表达式的时候,没有必要使用函数名--可以通过变量引用这个函数 let fun1 = function () { ..

qq_40792800的博客 582

k8s上分离集群seatunnel部署(生产推荐)

k8s上分离集群seatunnel部署(生产推荐)

寂夜了无痕的博客 888

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

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

我只是个程序员。 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JavaScript面向对象之Function类型

JavaScript面向对象之Function类型 下面是我对Function类型的总结,希望对您有帮助。 “函数式编程"是一种"编程范式”(programming paradigm),也就是如何编写程序的方法论。 1、Function与函数 函数是这样的一段JavaScript代码,它只定义一次,但可能被执行或调用多次。 Function类型是JavaScript提供的引用类型之一,JS可以通过Function类型创建Function对象。 在JavaScript中,每一个函数都可以以对象的形式存在(无论

weixin_46370867的博客 233

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

js引用类型--Function类型

版权声明:本文为博主原创文章,若文章中有错误请联系博主改正,请不要恶意留言(不喜欢请绕道)。欢迎大家转载,转载时请注明原文地址:https://blog.youkuaiyun.com/qq_37674616/article/details/82177270 目录 Function类型      1.函数的创建 函数的声明 函数表达式  2.函数属性和方法 继承属性 非继承的方法  3.函...

前端小愤青 858

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【WEB前端-基础】JS 引用类型-Function类型

【WEB前端-基础】JS 引用类型-Function类型

主、Lantu的博客 400

JS面向对象Function类型

Function类型 Function类型与函数 函数时这样的一段JavaScript代码,它只定义一次,但可能被执行或调用多次 Function类型是JavaScript提供的引用类型之一,通过Function类型创建Function对象。 在JavaScript中,函数也是以对象的形式存在的。每个函数都是一个Function对象。 函数名,本质就是一个变量名,是指向某个Function对象的引用 代码: //函数声明方式定义 function fn(){ console.log('this is

weixin_46156304的博客 395

JavaScript:Object类型、Function类型、Array类型

1、引用数据类型: Object类型、Function类型、Array类型、Date类型、基本包装类型、内置对象 instanceof 操作符用于测试某个变量是否属于某种引用数据类型 2、Object类型: (js中,任何引用数据类型都属于object) 创建object类型: 创建对象方式一:使用

W_jin的博客 2101

JavaScript笔记——引用类型之Object类型和Function类型

JavaScript笔记——引用类型之Object类型和Function类型 《JavaScript高级程序设计》中介绍的几种JavaScript的引用类型,本文只记了Object跟Function类型Object类型创建对象

azureternite的专栏 493

一张Redis思维导图:串起持久化、缓存与并发原子性

Redis作为缓存与内存数据库,其数据结构、持久化、主从复制、哨兵/Cluster、内存淘汰等机制共同决定性能与可靠性。理解底层编码转换、RDB/AOF刷盘与重写、复制积压缓冲区、过期删除与淘汰策略,有助于分析缓存雪崩、大key、主从延迟等线上问题,并为分布式锁、Lua脚本、Pipeline等并发原子性方案提供选型依据。把这些知识按数据结构、可靠性、性能与内存、运维观测四象限,再加并发与原子性横切线组织成思维导图,就能将零散命令、配置阈值和故障场景串成可检索的知识体系,适用于系统学习、面试复盘与生产排障。

weixin_33755649的博客 403

JavaScript之function类型

每个函数都是function类型的实例 function name() var name= function() 转载于:https://www.cnblogs.com/anderson0/p/4826683.html

weixin_34004576的博客 69

JS Function类型总结以及ES6中函数的扩展

一、Function类型总结 1、函数实际上是对象。 每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。函数是一个指向函数对象的指针。 2、函数没有重载。 3、使用 函数声明语法 定义,可以在代码开始前执行。使用 函数表达式 必须等到解释器执行到它所在的代码行,才会真正被解释执行。 4、函数名本身就是变量,所以函数可以作为值来使用。 5、在...

qq_37473645的博客 1161

JS的数据类型:number,string,boolean,null,undefined,object,function

tuhuolong的专栏 1751
上一篇: JS自定义函数库 之 跨浏览器获取XMLHttpRequest对象
下一篇: JS 之 理解对象
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值