首页 > 编程语言 >Javascript 变量类型 Object 和 Function 讲解

Javascript 变量类型 Object 和 Function 讲解

时间:2024-04-03 10:34:49浏览次数:23  
标签:Function Javascript obj 函数 对象 Object 构造函数

在 JavaScript 中,Object 和 Function 是两种非常重要的类型,但它们之间也有一些关键的区别和联系。

Object 类型

在 JavaScript 中,几乎所有的事物都是对象,包括原始值(如数字和字符串)的包装对象、数组、函数,以及使用字面量语法或构造函数创建的对象实例。对象是一个复合值,它可以包含多个值(称为属性)作为成员。

创建对象

你可以使用多种方式创建对象:

  1. 对象字面量:
    let obj = {  
        key1: 'value1',  
        key2: 'value2'  
    };
  1. 构造函数:
    let obj = new Object();  
    obj.key1 = 'value1';  
    obj.key2 = 'value2';
  1. class 关键字(ES6+):
    class MyClass {  
        constructor() {  
            this.key1 = 'value1';  
            this.key2 = 'value2';  
        }  
    }  
    let obj = new MyClass();

Function 类型

在 JavaScript 中,函数是一等公民,这意味着函数可以作为值被传递、赋值给变量或作为参数传递给其他函数。函数也是对象的一种特殊类型,它们可以拥有属性和方法,就像其他对象一样。

创建函数

创建函数也有多种方式:

  1. 函数声明:
    function myFunction() {  
        // 函数体  
    }
  1. 函数表达式:
    let myFunction = function() {  
        // 函数体  
    };
  1. 箭头函数(ES6+):
    let myFunction = () => {  
        // 函数体  
    };
  1. 构造函数:
    let myFunction = new Function('a', 'b', 'return a + b');

尽管函数是对象,但它们的主要目的是执行特定的任务。它们通常具有一组参数,并通过执行一系列语句来产生结果。

Object 和 Function 的关系

  • 函数是对象:在 JavaScript 中,每个函数都是 Function 类型的实例。这意味着函数拥有 Function.prototype 上的所有方法和属性。
  • 函数作为对象的方法:对象可以拥有函数作为它们的方法。这些函数定义了对象的行为。
  • 构造函数:函数也可以用作构造函数来创建特定类型的对象。当使用 new 关键字调用函数时,该函数作为构造函数,并返回一个新创建的对象实例。

示例

// 函数定义  
function MyObject() {  
    this.property = 'Hello';  
    this.method = function() {  
        console.log(this.property);  
    };  
}  
  
// 创建 MyObject 的实例  
let obj = new MyObject();  
  
// 调用 obj 的方法  
obj.method(); // 输出 'Hello'  
  
// 检查 obj 的类型  
console.log(obj instanceof Object); // 输出 true  
console.log(typeof obj.method); // 输出 'function'

在这个例子中,MyObject 是一个构造函数,它创建的对象 obj 是一个 Object 类型的实例,同时 obj.method 是一个 Function 类型的实例。这展示了 Object 和 Function 类型在 JavaScript 中的紧密联系和它们在创建和操作对象时的关键作用。

标签:Function,Javascript,obj,函数,对象,Object,构造函数
From: https://www.cnblogs.com/myflowers/p/18112118

相关文章

  • 2024年最新github之Javascript语言开源项目top50排行榜项目
    如果有帮助到您还请动动手帮忙点赞,关注,评论转发,感谢啦!......
  • JavaScript库,编写$()和getElementsByClassName()方法
    背景:JavaScript库是一组预先编写好的JavaScript代码集合,旨在简化常见的网页开发任务。这些库通常包含了许多函数和方法,可以帮助开发人员处理各种任务,比如DOM操作、事件处理、动画效果、AJAX请求等等。使用JavaScript库可以节省开发时间,并提供了一种标准化的方法来解决常见的......
  • DMKD: IMPROVING FEATURE-BASED KNOWLEDGE DISTILLATION FOR OBJECT DETECTION VIA DU
    摘要最近主流的掩模蒸馏方法是通过从教师网络的特征图中重建学生网络的选择性掩模区域来实现的。在这些方法中,需要适当的选择掩模区域,使重构的特征像教师特征一样具有足够的识别和表示能力。然而,以前的掩模蒸馏方法只关注空间掩模,使得得到的掩模区域偏向于空间重要性,而没有......
  • 【Azure Function & Application Insights】在Azure Function的日志中,发现DrainMode m
    问题描述ApplicaitonInsights收集了AzureFunction的日志,定期发现有”DrainModemodeenabledTraces“。DrainMode是什么意思呢? 问题解答排出模式(Drainmode) 属于FunctionApp 缩放机制中的一部分,当后台检测到FunctionApp请求量不再需要当前的instance时会停止对......
  • vue xxx.find is not a function;
    错误:1.后端获取数据集合,存到 vuex store 中和本地 window.localStorage;2.因为要解决刷新丢失问题在routeconfig中路由拦截重新 拿到本地数据window.localStorage 保存到store中;3.界面刷新报错:vuexxx.findisnotafunction分析:1.xxx类型确实不是数组;......
  • HTML设置定时执行代码 JavaScript 计时事件
    1、https://www.runoob.com/js/js-timing.htmlJavaScript一个设定的时间间隔之后来执行代码我们称之为计时事件JavaScript计时事件通过使用JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。在JavaScript......
  • 论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection
    文章目录RangeDet:InDefenseofRangeViewforLiDAR-based3DObjectDetection问题笛卡尔坐标结构图Meta-KernelConvolutionRangeDet:InDefenseofRangeViewforLiDAR-based3DObjectDetection论文:https://arxiv.org/pdf/2103.10039.pdf代码:https://......
  • 【Azure Function & Application Insights】调用Function上传和下载文件,有时候遇见大
    问题描述在FunctionApp中配置了无代码模式的ApplicationInsights,但有时候发现,超过1MB的文件上传/下载操作成功。但是在ApplicationInsights中,却没有发现请求日志?这是一种什么情况呢? 问题解答ApplicationInsights 是具有采样功能的,当传入执行的速率超过指定的阈值时,Appl......
  • Javascript
    JS的引入方式<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>js的引入方式</title&......
  • 云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理
    方案概述现在绝大多数客户都有很多非结构化的数据存在OSS中,以图片,视频,音频居多。举一个图片处理的场景,现在各种终端种类繁多,不同的终端对图片的格式、分辨率要求也不同,所以一张图片往往会有很多张衍生图,那如果所有的衍生图都存在OSS中,那存储的成本会增加,所以就可以通过OSSO......