JavaScript的Object中28个原型方法、静态方法和属性

JavaScript-对象方法(Object) 只要现有属性的值是可写的,它们仍然可以更改。被冻结的对象不能再被更改:不能添加新的属性,不能移除现有的属性,不能更改它们的可枚举性、可配置性、可写性或值,对象的原型也不能被重新指定。静态方法返回一个对象,该对象描述给定对象上特定属性(即直接存在于对象上而不在对象的原型链中的属性)的配置。方法返回一个布尔值,表示对象自有属性(而不是继承来的属性)中是否具有指定的属性。静态方法会直接在一个对象上定义一个新属性,或修改其现有属性,并返回此对象。静态方法直接在一个对象上定义新的属性或修改现有属性,并返回该对象。 阅读详情

Object.prototype原型方法、属性

序号方法名参数返回值
1constructor属性-----------------------返回实例构造函数
2hasOwnProperty
3isPrototypeOf(obj)对象调用此方法的对象是否存在与参数obj的原型链上。是返回布尔值true
4propertyIsEnumerable(propName)实例的属性名属性是否可枚举,是返回布尔值true
5toLocalString(obj)对象对象的字符串表示
6toString(obj)对象对象的字符串表示
7valueOf(obj)对象将对象转换为原始值

Object静态方法

序号静态方法名参数返回值
1assign(targetObj,sourceObj,s2,s3...)目标对象,源对象将源对象合并到目标对象,返回修改后的目标对象,浅拷贝
2create(sourceObj)源对象以源对象为原型创建一个对象并返回
3defineProperties(obj,props)要修改的对象,修改后的属性为一个对象声明多个属性,返回修改后的原对象
4defineProperty(obj,propName,propVal)要修改的对象,修改后的属性为一个对象声明一个属性,返回修改后的原对象
5entries(obj)要遍历的对象给定对象自身可枚举属性的键值对数组。
6freeze(obj)要冻结的对象返回浅冻结的原对象
7fromEntries(arr[arr1,arr2...])键值对二维数组从二维数组转化而来的对象
8getOwnPropertyDescriptor(obj,propName)对象,对象的属性名返回对象的自有属性描述对象
9getOwnPropertyDescriptors(obj)对象返回对象的所有自有属性描述对象组成的对象
10getOwnPropertyNames(obj)对象对象自有属性名组成的数组
11getOwnPropertySymbols(obj)对象对象自有Symbol类型的属性组成的数组
12getPrototypeOf(obj)对象对象的原型
13is(val,val2)值是同一个值返回布尔值true,不是返回false,无强制类型转换
14isExtensible(obj)对象是否可扩展(可以添加属性),是返回布尔值true
15isFrozen(obj)对象是否被冻结,被冻结返回布尔值true
16isSealed(obj)对象是否是密封的,密封(不可扩展、不可删除、不可配置,不一定不可写),是密封返回布尔值true
17keys(obj)对象由obj可枚举属性组成的数组
18preventExtensions(obj)对象让对象变得不可扩展,不能添加属性,返回阻止扩展后的对象
19seal(obj)对象密封一个对象,返回密封后的对象
20setPrototypeOf(obj,obj2)对象将obj2设置为obj的原型
21values(obj)对象由对象可枚举属性组成的数组

 代码示例:

        let p = (...args) => {
            console.log(...args);
        }
        
        p(Object.prototype);
        p('------------------------');
        let hero = {
            name:"Asia",
            id:23,
            say(){
                p(`I am ${this.name}`);
            }
        }
        let o = {
            id:24,
            sex:'man',
            ob:{
                a:{
                    b:"a"
                }
            }
        }
        
        // p(hero.constructor());
        
        // p(Object.assign(hero,o));
        // hero.ob.a.b = "00000";
        // p(hero);
        // p(o);
        
        // let tom = Object.create(hero);
        // p(tom);
        // tom.name = "tomA";
        // tom.say();
        
        // let result = Object.defineProperties(hero,{
        //     'newProperty1':{
        //         value:'val1',
        //         writable:true
        //     },
        //     'newProperty2':{
        //         value:"val2",
        //         writable:true,
        //     }
        // });
        // p(result);
        
        // let result = Object.defineProperty(hero,'newProperty',{
        //     value:'val',
        //     writable:true
        // });
        // p(result);
        
        // for(const [key,val] of Object.entries(hero)){
        //     p(key,val);
        // }
        
        // Object.freeze(hero);//浅冻结
        // hero.id = 9999;
        // p(hero.id);//
        
        // o = Object.fromEntries([
        //     ['a','aa'],
        //     ["b",'bb'],
        // ]);
        // p(o);
        
        // let result = Object.getOwnPropertyDescriptor(hero,'name');
        // p(result);
        
        // let result = Object.getOwnPropertyDescriptors(hero);
        // p(result);
        
        // let arr = Object.getOwnPropertyNames(hero);
        // p(arr);
        
        // let s1 = Symbol("a");
        // let s2 = Symbol('b');
        // hero[s1] = 'symbol1';
        // hero[s2] = 'symbol2';
        // let arr = Object.getOwnPropertySymbols(hero);
        // p(arr);
        
        // let result = Object.getPrototypeOf(hero);
        // p(result);
        
        // p(Object.is(1,1));
        // p(Object.is(1,"1"));
        
        // p(Object.isExtensible(hero));
        
        // p(Object.isFrozen(hero));
        
        // p(Object.prototype.isPrototypeOf(hero));
        
        // p(Object.isSealed(hero));
        
        // p(Object.keys(hero));
        
        // Object.preventExtensions(hero);//使hero不可扩展
        // hero.aaa = "1";
        // p(hero);
        
        // p(hero.propertyIsEnumerable('name'));
        
        // p(Object.seal(hero));
        
        // Object.setPrototypeOf(hero,null);
        // p(hero.prototype);
        
        // p(hero.toLocaleString());
        
        // p(hero.toString());
        
        // p(hero.valueOf());
        
        p(Object.values(hero));

【JavaScript】`Object` 对象静态方法详解 对象提供了许多静态方法,用于操作和处理对象。这些方法覆盖了对象操作的大部分场景,建议根据需求选择合适的工具!密封对象,阻止添加/删除属性,但允许修改现有属性。阻止对象添加新属性,但允许修改或删除现有属性。返回对象自身的所有 Symbol 类型属性键。设置对象的原型(不推荐在性能敏感场景使用)。冻结对象,使其不可修改、添加或删除属性。以指定原型创建新对象,并可定义属性。检查对象自身是否包含某个属性(替代。合并多个对象到目标对象(浅拷贝)。返回对象某个属性的描述符(如。定义或修改对象的属性特性(如。 阅读详情

相关推荐

实现高精度卷积混响--MATLAB仿真篇

一、前言 之前在STM32F407上现实了直播声卡,实现的经典Schroeder混响模型和Moorer混响模型,得到不错效果。后来得知卷积混响最为真实地表现空间的特性,所以也就尝试在MCU上实现一个高精度的卷积混响(卷积点数为32768),目前MCU出来的混响效果算得上一流水准,本人也在计划在ADI的21489或者SC584上更高精度的卷积混响。 二、卷积方式 1、conv1是使用MATLAB自带卷积函数conv 2、conv2和conv3是改进后卷积过程,具有减少运算量特点,方便嵌入式移植 clear;

Six44的博客 5079

前端面试题1:Object.prototype.toString.call() 、instanceof 以及 Array.isArray()三种方法判别数组的优劣和区别

Object.prototype.toString.call() 每一个继承 Object 的对象都有 toString 方法,如果 toString 方法没有重写的话,会返回 [Object type],其中 type 为对象的类型。但当除了 Object 类型的对象外,其他类型直接使用 toString 方法时,会直接返回都是内容的字符串,所以我们需要使用call或者apply方法来改变to...

qq_34707500的博客 2527

基于python的排课表系统,用python编写排课系统

实现一个具体的课程管理系统。(5) 学生可以查看自己选上的课的成绩,以及各个课程的得分、绩点,并给出其平均绩点,但不允许查看年级其他人的成绩。(2) 学生定制专属课表,可以查看整个学期本人的课程安排,包括课程名称、上课时间、上课地点、任课老师、学分等等。(13) 系主任可以查看整个系的全部学生以及他们的平均绩点,可以对每个班进行排名,或者也可以对整个系进行排名。(15) 系主任可以查看整个学期所开设的所有课程,包括这些课程的全部详细信息。(1) 学生基本信息的查询,学生可以对本人的系统登陆密码进行修改。

yang0728y的博客 2000

js中Object常用方法和属性

继之前js中数组的常用方法之后,Object的常用方法和属性也是很常用的。故,总结之。 一、属性 Object自带一个prototype的属性,即Object.prototype,Object.prototype本身也是一个对象,也会有一些属性和方法。如下: 1、属性 Object.prototype.writable:默认为false Object.protot

3万+

ICC2如何写出floorplan信息

不用-exclude 的话rows_tracks / vias /blockages / routing_rules信息都会写出去,即便用了-include {macro ports}也不行,所以不介意这些东西的话可以用以下两种种def方式去写floorplan。write_floorplan用法和write_def一样,因为写出来的文件夹里就包含def,用write_floorplan的好处和innovus saveFPlan一样,都能写出voltage area和bound信息。

m0_61544122的博客 1072

5.6华为OD机试真题 新系统 - 匹配命令行前缀关键字 (Java/Py/C/C++/Js/Go)

5.6华为OD机试真题 新系统 - 匹配命令行前缀关键字本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。

算法大师! 2129

Object对象方法

语法:对象.hasOwnProperty(非继承属性名) - 判断一个对象中是否有自带的某个属性返回布尔值,true表示是,false表示否。只有自己内非继承的属性才能返回true,继承的和不是自己的属性都是false。

Ajiujiuk的博客 258

[AI] 本地部署 Dify 遇到 Internal Error?一文彻底解决密码不一致引发的问题

摘要:Dify本地部署常见InternalError错误主要由配置残留或密码不一致导致,特别是修改.env文件后未同步清除数据库记录。彻底解决方案包括:1)清理Docker数据;2)删除旧配置和数据库;3)还原源代码;4)重建.env文件;5)重新初始化部署。关键提醒:记录部署路径、备份.env文件并妥善保存密码。该错误本质是配置冲突,最有效方法是完全重置而非调试,保持清晰的部署管理可避免多数InternalError问题。(149字)

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 435

JavaScript 原型与原型链,以及object的方法详解

1.无论何时,只要创建一个函数,就会按照特定的规则为这个函数创建一个 prototype。有读者可能注意到了,每次定义一个属性或方法都会把 Person.prototype。的属性,指回与之关联的构 造函数。属性(指向 原型对象)。在自定义构造函数时,原型对象默认只会获得 constructor。方便地取得一个对象的原型,而这在通过原型实现继承时显得尤为重要。然后,因构造函数而 异,可能会给原型对象添加其他属性和方法。被设置为等于一个通过对象字面量创建的新对象。,无论该属性是在实例上还是在原型上。

m0_61362703的博客 1720

Android Audio基础——系统服务(二)

AudioService 继承自 IAudioService.Stub。IAudioService.Stub 类很明显是通过 IAudioService.aidl 自动生成的。AudioService 位于 Binder Native 端。AudioManager 拥有 AudioService 的 Binder Proxy 端,是 AudioService 在客户端的一个代理。几乎所有客户端对 AudioManager 进行的请求,最终都会交由 AudioService 实现。

小旭的专栏 2074

BiSeNet:面向实时语义分割的双边网络

BiSeNet 系列重新定义了实时语义分割的范式“不要在速度和精度之间妥协——用架构创新,两者兼得。V1:提出双边解耦思想,启发后续大量工作;V2:通过极致轻量化,证明小模型也能高精度;V3(工业版):推动端侧 AI 落地,成为行业标准之一。如今,BiSeNet 已成为嵌入式视觉系统的默认选择,其设计理念(解耦、轻量、融合)被广泛应用于目标检测、姿态估计等领域。

浩瀚之水的专栏 268

Javascript中Object原型常用的方法

Object原型中常用的方法: constructor 保存用户创建当前对象的函数,与原型对象对应的构造函数 hasOwnProperty(propertyName) 检查给定的属性名是否是对象的自有属性 propertyIsEnumerable(propertyName) 检查给定的属性在当前对象实例中是否存在 valueOf() 返回对象的字符串,数值,布尔值的表示 toLocaleString() 返回对象的字符串表示,该字符串与执行环境的地区对应 toString() 返回对

Yu7582_的博客 421

55、宇宙微波背景辐射望远镜及其光学系统解析

本文详细解析了宇宙微波背景辐射(CMB)望远镜及其光学系统的设计与优化。内容涵盖折射与反射光学系统的特性、旁瓣控制技术、气球与地面观测系统的对比、探测器阵列的发展、光学系统设计流程以及不同观测场景下的光学系统选择。同时,文章展望了CMB望远镜光学系统的未来发展趋势,包括技术创新、多频段观测、国际合作与大型项目等。通过系统性的分析与对比,为CMB研究提供了全面的技术支持与理论基础。

f9g0h的博客 143

js中实例方法、静态方法和原型方法详解

背景 之前一直以为构造函数可以直接访问原型方法,是错的,现在说一下 实例方法 构造函数中this上添加的成员,在Cat构造方法里面,定义在this中的变量和方法,只有实例才能访问到:如this.name,this.move,this.eat这些都是实例拥有,无法通过Cat直接调用。 function Cat(name){ this.name = name this.move =...

北京欢迎您 8141

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JavaScript系列—class(静态方法和属性、实例属性、私有方法和属性)

1.类的简介 JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。 function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function () { return '(' + this.x + ', ' + this.y + ')'; }; var...

jiaojsun的博客 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【JavaScript】Object的静态方法详解

在JavaScript中,Object是构建数据结构的基础之一。所有非原始类型的值(即除字符串、数值、布尔值、null和undefined之外的值)都是对象。对象由键值对组成,其中键是属性名,值可以是任意类型的数据。Object的静态方法是直接定义在Object构造函数上的方法,而不是定义在对象的原型链上。通过这些静态方法,我们可以完成诸如对象的合并、复制、比较、属性枚举等操作。方法用于创建一个新对象,使用现有的对象作为新对象的原型。这提供了一种比class更加灵活的方式来创建对象并指定其原型。

lph159的博客 1529

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JavaScript中Function和Object的原型和原型链

我们之前写了原型和原型链的文章,但是后面发现比较特殊的一种情况:Function和Object的原型和原型链的关系比较复杂,所以这篇专门来讲两者的关系。 主要参考文章:https://www.jianshu.com/p/dee9f8b14771 1.前言 我们先来讲述几个结论: prototype是函数的一个属性; __proto__是一个对象拥有的内置属性,是JS内部使用寻找原型链的属性; Ob...

yangyang的专栏 4263

js Object的属性和静态方法及实例方法

js Object的属性和静态方法及实例方法 属性 Object.prototype Object.prototype.protto Object.prototype.constructor 静态方法 Object.assign(target,source1,source2,…) 用于将所有源对象source的可枚举性的值合并到目标对象target上,返回目标对象。此方法只拷贝源对象的自身...

liuguoxionglang的博客 502

【JS】Object的静态方法

Object的静态方法

owo_ovo的博客 1043

js的静态方法和静态属性

js的静态方法和静态属性 在有些面向对象的编程语言中,我们可以通过static关键词来声明静态属性,这一点,在Javascript中可以通过**“模拟”**的方式实现。 1、定义静态属性 基本语法:类名.属性(静态属性)其访问时也是通过类名.属性进行访问的。 特别注意:在Javascript中,Math数学类下的所有属性和方法都是静态的。 在Javascript中,有两种属性: 对象.属性(实...

weixin_43550660的博客 1467

JavaScript之Object原型方法

Object 在JS 中,对象都是有原型的,甚至原型链。不过最终都是指向一个最初的原型,即 Object 对象的原型。那这个原型里都有啥呢?下面一起来看下,首先在浏览器控制台输入 {},我们知道这是创建一个对象。 从上面的图片我们发现对象的 原型属性 __proto__ 下面有 13 个属性或者函数(这里我用的是Chrome,不同浏览器可能不一样)。 下面一一看下:

hustzw07的博客 3460

js中静态方法(属性)、实例方法(属性)、内部方法(属性)和原型的一点见解

属性 1,私有类型 :私有,即只能自己使用,在下面的例子,就是说只能在这个函数里使用这个属性 ( function(){ var a = "私有属性"; alert(a); //私有属性 })() alert(a);//error a没有定义2,实例属性 :即属于实例对象才能访问 var a = function(){ this.x="实例属性"; }

panying0903的专栏 9447

静态方法、实例方法和原型方法

javaScript中有三种方法,静态方法、实例方法和原型方法。 1、静态方法是直接定义给构造函数的方法。静态方法使用 类名.方法名 去调用,但是构造函数所创建的实例不可以调用静态方法。 2、实例方法是在构造函数上用this指向新创建的实例,用 this.方法名 = function ( ) {...} 的方式给每个新创建的实例添加方法,这种方式添加的方法称为实例方法。每个实例在创建时都会...

qiuqiula_的博客 2026

JavaScript中的Object静态方法

静态方法就是直接使用类名调用的方法,比如Object.getOwnPropertyNames(obj),obj是一个对象,且静态方法是无法被子类继承或者实例对象拥有的,Object.getPrototypeOf(obj) 获得obj的原型,也可以使用obj._ proto__属性获得obj的原型: 结果:该方法可以为obj新增一个名为propName的属性,同时它的属性定义为desc,desc使用一个对象赋值,例如: 结果:以proto为原型,新建一个实例对象,同时将props定义的属性设置给这个新对象,以

qq_47455650的博客 453

JS中Class类的静态属性和静态方法

一、类的两个概念: 1、类自身; 2、类的实例对象; 总的来说:静态的是指向类自身,而不是指向实例对象,主要是归属不同,这是静态属性,静态方法的核心。 二、对象的两个部分 1、属性 分为:实例属性、静态属性(类属性)、只读属性 2、方法 分为:实例方法、静态方法(类方法)...

王春燕的博客 7141

JavaScript 静态方法和实例方法

总结: 直接定义在构造函数上的方法和属性是静态的, 定义在构造函数的原型和实例上的方法和属性是非静态的 1.静态方法: function ClassA(){ //定义构造函数 }; ClassA.func = function(){ //在构造函数上添加一个属性(因为函数也是对象) console.log("This is a static method"); } var instan...

yangyang的专栏 2703
上一篇: JavaScript中的Array40个原型方法、静态方法、属性
下一篇: TypeScript文件的编译执行
SignalFire
博客等级 码龄7年 119粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值