首页 > 其他分享 >JS函数中的属性

JS函数中的属性

时间:2023-05-19 09:45:51浏览次数:40  
标签:function console 函数 name log JS 属性

当定义和调用函数时,JavaScript 函数对象会自动具有一些特定的属性,以下是一些常见的属性和方法。

1. arguments : arguments 是一个类数组对象,它包含了函数调用时传递的参数。它允许你在函数内部访问传递给函数的参数列表,即使在函数定义时未明确声明这些参数。可以通过索引访问 arguments 对象中的参数值,也可以使用 arguments.length 获取传递的参数个数。

function exampleFunc(a, b) {
    console.log(arguments[0]); // 访问第一个参数
    console.log(arguments.length); // 参数的个数
}

exampleFunc(1, 2, 3); // 1,3

注意:在es6开始,推荐使用剩余参数或者使用命名参数来代替使用 arguments 对象。

 

 

2. length : length 属性返回函数声明时的形参数量,即函数期望接收的参数个数。它表示函数定义时定义的形参个数,不包括剩余参数。

function exampleFunc(a, b, c) {
    // 函数体
}

console.log(exampleFunc.length); // 3

 

 

3. name : name 属性返回函数的名称。对于具名函数,它返回函数的实际名称。

function namedFunction() {
// 函数体
}

const anonymousFunction = function() {
// 函数体
}

console.log(namedFunction.name); // namedFunction
console.log(anonymousFunction.name); // anonymousFunction

 

这些属性使得函数对象在运行时具有额外的元数据,可以根据需要访问这些属性来获取有关函数的信息,例如函数的参数、参数个数和名称。这些属性在编写灵活和通用的函数时非常有用。

 

 

4. caller : caller 属性返回一个调用当前函数的函数引用。如果当前函数是在全局作用域中被调用的,那么 caller 将返回 null 。该属性在严格模式下被禁用。

function outerFunc() {
    innerFunc();
}

function innerFunc() {
    console.log(innerFunc.caller); // outerFunc
}

outerFunc();

 

 

5. prototype : prototype 属性允许你向函数对象添加新的属性和方法。它用于创建基于原型继承的对象。

function Person(name) {
    this.name = name;
}

Person.prototype.sayHello = function() {
    console.log("Hello, " + this.name);
};

const person = new Person("John");
person.sayHello(); // Hello, John

 

 

6. bind() : bind() 方法返回一个新的函数,该函数在调用时将指定的 this 值绑定到提供的参数,用于创建函数的新实例并永久性地绑定函数的上下文。

const obj = {
    name: "John",
    greet: function() {
        console.log("Hello, " + this.name);
    }
};

const boundFunc = obj.greet.bind(obj);
boundFunc(); // Hello, John

类似的还有 apply() 、 call() 、 toString() 等。

 

 

7. constructor : constructor 属性返回创建函数对象的原型对象的引用。

function Person(name) {
    this.name = name;
}

const person = new Person("John");

console.log(person.constructor); // 输出:Person

 

标签:function,console,函数,name,log,JS,属性
From: https://www.cnblogs.com/ronaldo9ph/p/17414005.html

相关文章

  • Mybatis和Mybatis-Plus对MySQL中json类型处理
    目录1MySQL中json类型处理1.1引言1.2准备建表1.3Mybatis1.3.1实体类1.3.2BaseTypeHandler1.3.3application.yml1.3.4修改SQL文件1.4MybatisPlus1.4.1实体类1.4.2application.yml1.4.3SQL文件1MySQL中json类型处理1.1引言mysql5.7开始支持json类型字段点击了解M......
  • JS事件循环机制
    JS事件循环机制需要知道的几个点1.在特定的时间将回调的代码放在回调队里里面去2.初始化代码执行完之后才会去执行回调函数里面的代码3.callbackqueue回调队列(待处理的的回调函数,不一定马上执行)4.浏览器有一些管理模块(DOM事件模块、定时器模块、ajax)  ......
  • C语言函数大全-- _w 开头的函数(3)
    C语言函数大全本篇介绍C语言函数大全--_w开头的函数1._wmkdir1.1函数说明函数声明函数功能int_wmkdir(constwchar_t*dirname);用于创建指定路径名的新目录参数:dirname:指向以null结尾的宽字符数组,该数组包含要创建的目录的路径1.2演示示例#in......
  • JS组合继承
    组合继承<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"content=&......
  • 实验四 函数与异常处理编程
    print(sum)sum=42print(sum)definc(n):sum=n+1print(sum)returnsumsum=inc(7)+inc(7)print(sum)deffunc1(a,b,c,d,e,f):return[a,b,c,d,e,f]deffunc2(a,b,c,*,d,e,f):return[a,b,c,d,e,f]deffunc3(a,b,c,/,d,e,f):re......
  • JS案例(数值动态变化)
    一、前言今天给大家带来一个非常好玩的js小demo,实现数值的动态变化!这个效果之前在清华大学的官网上见到过(现在他们把这个效果给取消了),之前觉得这个效果挺好玩的,这些天在复习js的时候,无意间见到了这效果,于是写了一个,想分享给大家。效果如下:那么它是怎么做出来的呢? 看代码二、HTM......
  • #yyds干货盘点#灵活的 Node.js 多功能爬虫库 —— x-crawl
    x-crawlx-crawl是一个灵活的Node.js多功能爬虫库。灵活的使用方式和众多的功能可以帮助您快速、安全、稳定地爬取页面、接口以及文件。如果你也喜欢x-crawl,可以给 x-crawl存储库 点个star支持一下,感谢大家的支持!GitHub:https://github.com/coder-hxl/x-crawl特征异步同步......
  • VScode下golang 同一个包下不同文件之间函数调用问题
    VScode下golang同一个包下不同文件之间函数调用问题1.问题发现最近在vscode上学习golang的相关开发,发现这样一个问题:同文件夹下的两个文件,在都处于main包的情况下,无法在mian()里直接调用另一个文件中的函数,会报错:undefined。2.原因分析从语法层面上似乎并无问题,但是Go中main......
  • js中数组方法,超详细的哦
    一、改变原数组的方法1.push()末尾添加数据语法: 数组名.push( 数据)作用: 就是往数组末尾添加数据返回值:  就是这个数组的长度vararr=[10,20,30,40]res=arr.push(20)console.log(arr);//[10,20,30,40,20]console.log(res);//52.pop()末尾出删除数据语......
  • 二次函数题目解析
    写给自己看的,以免明天的我忘记解法(雾[温迪_欸嘿]-题目-问$①$:观察函数图像可得信息:1.$ c>0$ (函数图像与$ y$交点位于$ (0,c)$)2.$ a<0$ (函数开口向下时$a$为负号)3.$a$与$b$异号($a*b>0$[同号]时,对称轴在$y$轴左侧,右侧则为异号)∵$a<......