JS函数中的属性

这篇具有很好参考价值的文章主要介绍了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

 文章来源地址https://www.toymoban.com/news/detail-450137.html

到了这里,关于JS函数中的属性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScript 函数调用

    在JavaScript中,函数调用可以通过以下几种方式实现: 1. 声明函数并调用:首先使用`function`声明一个函数,然后通过函数名加上括号来调用函数。 ```javascript function greet() {   console.log(\\\"Hello!\\\"); } greet(); // 调用函数 ``` 2. 函数表达式:可以将函数赋值给变量,然后通过变量

    2024年02月08日
    浏览(23)
  • JavaScript 函数、函数构造、函数调用、参数、函数返回值、变量的作用域、预解析

    一、函数及函数的构造 函数是一个可重用的代码块,用来完成某个特定功能。每当需要反复执行一段代码时,可以利用函数来避免重复书写相同代码。 函数包含着的代码只能在函数被调用时才会执行,就可以避免页面载入时执行该脚本 简单来说就是一个封装,封装的是一个特

    2024年02月06日
    浏览(54)
  • JS中方法、函数、属性是一个东西吗

    在 JavaScript 中,方法、函数和属性是相关但不完全相同的概念。 方法(Method):在对象中,方法是对象的属性,但它的值是一个函数。方法可以通过对象来调用,并且可以访问对象的属性和其他方法。 在上述代码中, greet 是一个方法,它是对象 obj 的属性,它的值是一个函

    2024年02月10日
    浏览(63)
  • 用selenium爬取直播信息(1),JavaScript中的innerHTML、value属性

    可以看到有标题,类型,姓名,以及热度,我们爬取这四个字段就行 然后滑到底部,这里的下一页是我们控制爬取页数的​ 注意:当我们进入页面时,虽然有滚动条,但所有直播信息已经加载好,并不是通过滑动然后Ajax加载的,所以在代码中并不需要写滑动,直接提取就可

    2024年04月26日
    浏览(30)
  • 微信小程序之调用子组件中的属性或方法

    不能使用标签选择器,否则返回的是null 在自定义组件中,声明了类名选择器或者是id选择器,在父组件中用this.selectComponent(class或id)去关联 ,就可以使用子组件的属性和方法呢! 父组件的.JS文件中 zujian  class=\\\"名字\\\" id =“名字”  /zujian 然后在父组件的.wxml中的触发函数中

    2024年02月11日
    浏览(27)
  • Vue.js 中的 watch 属性详解

    在 Vue.js 中, watch 属性是一种非常重要的属性,它可以监听 Vue 实例中指定的数据变化,并在数据发生变化时执行相应的操作。本文将对 Vue.js 中的 watch 属性进行详细的介绍,并附上相关的代码示例。 在 Vue.js 中, watch 属性被定义为一个对象,它可以用来监听 Vue 实例中的数

    2024年02月07日
    浏览(38)
  • js如何获取对象中的所有属性

    循环遍历对象的 所有属性 ,并逐个输出它们的值;每次执行时,都会将一个属性名赋值给所定义的变量 输出一个对象的所有 属性名 ,该方法返回一个数组,数组内包括对象内可枚举属性 输出一个对象的所有 属性值 。该方法返回一个数组,数组内包含对象自身所有可枚举

    2024年02月11日
    浏览(35)
  • JavaScript节流功能(js节流函数,节流功能的应用与解析,深入了解JavaScript节流函数)

    简述:上篇文章介绍了js防抖功能,这期说下js节流功能。节流就是某一高频事件不断被触发时,将多次执行变成每隔一段时间执行,具体点就是减少一个事件在一段时间内的触发频率,它是一种常用的函数优化技术,可以限制函数的执行频率,从而提高网页的性能和用户体验

    2024年02月13日
    浏览(36)
  • JavaScript深拷贝(js深拷贝,JavaScript递归函数,实现深拷贝)

    简述:JavaScript的深拷贝和浅拷贝大家都比较熟悉,今天来分享下深拷贝,就是使用该函数时,会复制拷贝一份该数据,修改该数据属性,不会改变原有数据,就是把复制的对象所引用的对象全都复制了一遍,具体实现如下; 1、定义拷贝对象; 2、定义递归函数deepClone(),实现

    2024年02月15日
    浏览(49)
  • 【Three.js】Three.js中的纹理—图像应用和属性调整

      Three.js是一种强大的JavaScript库,用于创建基于Web的交互式3D图形和动画。在Three.js中,纹理是一项重要的功能,它允许我们将图像应用到几何体对象上,并通过调整纹理的属性来实现更丰富的视觉效果。 本文将介绍Three.js中的纹理功能,并演示如何将图片作为纹理应用到几何

    2024年02月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包