标准库 - Object

news2024/11/30 8:46:45

一、Object 对象,同时也是一个构造函数。

     Object 对象提供了很多操作对象的属性和方法,也是对应的原型。

1.Objcet() 作为函数使用 可以把其他数据类型转为一个包装对象

<script>  
    var a = Object("a");
    // 传入字符串就可以包装为字符串对象,传入number 可以包装为number对象
    console.log(a);  //--> String
 </script>

2.Object( ) 作为构造函数 。如果传入对象,则直接把对象返回

<script>
    var b = Object ({name:"1"});
        console.log(b); 
</script>

3.直接调用Object方法,可以创建一个空对象

 <script>
 var c = new Object();
  c.name = "a";
  console.log(c);  //---> {name: 'a'}
 var c1 = {name : "c"};
  console.log(c1); // ---> {name: 'c'}
 </script>

 4.可以给Object 对象的 原型添加自定义方法或属性 ,所有原型是Object的对象都有该方法

 <script>   
        //给object对象原型添加一个count方法
        Object.prototype.count = function(){
            console.log("自定义方法");
        }
        var d1 ={name:"b"};
        //调取count方法 
        d1.count();  // ---> 自定义方法
    </script>

5.instanceof 运算符返回一个bool值,表示对象是否为某个构造函数的实例

所有的对象都是Object 构造函数的实例

 <script>     
  function Peo (){
            this .name = "peo";
        }
        var pe1 = new Peo();
        console.log (pe1);
        var pe2 = {};
        console.log(pe1 instanceof Peo); //true 
        console.log(pe2 instanceof Peo); // false
        console.log(pe2 instanceof Object); // true
        console.log(pe1 instanceof Object); // true
    </script>

6. Object.getPrototypeof(obj)

        返回参数对象的原型,也是获取对象原型的标准方法

直接赋值不能通过get读取对象的原型

   <script>
        function Peo(){
            this.name = "name";
        }
        var pe1 = new Peo( );
        console.log(Object.getPrototypeOf(pe1)); // ---> {constructor: ƒ}
    </script>

7.Object.setPrototypeof(a,b)

        设置a对象的原型对象为b。  getPrototypeOf可以读取到该原型对象

<script> 
        //利用set 修改pe3的原型对象  
     Object.setPrototypeOf(pe3,{value : "test"});
        //用get可以读取
     console.log(Object.getPrototypeOf(pe3));//---> {value: 'test'}
    </script>

8.Object.create(a,b) 

        以对象a为原型,创建一个新的对象b。b对象需要的属性需要用对象属性描述方式

<script>         
//创建一个对象 有name属性和age属性
     var cat = {name :"cat",age :"12"};
 //以对象cat 为原型,创建一个新的对象cat1  新对象的属性tnmae 值需要用对象属性描述方法 
     var cat1 =Object.create(cat,{tname:{value:"ca1"}});
     console.log(cat1); //---> {tname: 'ca1'}
</script> 

9.prototye.isPrototypeOf(obj)

         判断一个对象是否为参数对象的原型

<script>         
//创建一个对象 有name属性和age属性
     var cat = {name :"cat",age :"12"};
 //以对象cat 为原型,创建一个新的对象cat1  新对象的属性tnmae 值需要用对象属性描述方法 
     var cat1 =Object.create(cat,{tname:{value:"ca1"}});
     console.log(cat1); //---> {tname: 'ca1'}
//判断cat1的原型是否为cat的原型
     console.log(cat.isPrototypeOf(cat1)); // ---> true
</script> 

10. __ proto__ 

       返回对象的原型

<script>   
    var cat = {name :"cat",age :"12"};
        //以对象cat 为原型,创建一个新的对象cat1  新对象的属性tnmae 值需要用对象属性描述方法 
        var cat1 =Object.create(cat,{tname:{value:"ca1"}});
        //输出对象cat1的原型
        console.log(cat1.__proto__); // ---> object
</script> 

11.hasOwnProperty(prop)

用于查看属性是否为对象自身的属性。true则是自身属性,false是原型属性

:原型上的属性不属于自身属性

    var cat = {name :"cat",age :"12"};
        //以对象cat 为原型,创建一个新的对象cat1  新对象的属性tnmae 值需要用对象属性描述方法 
        var cat1 =Object.create(cat,{tname:{value:"ca1"}});
        console.log (cat1.hasOwnProperty("tname"));  // --> true
        console.log (cat1.hasOwnProperty("name")); // --> false
    </script> 

12 Object.keys(obj)

遍历对象的所有key值 。(只能遍历对象自有的属性 不能遍历对象原型上的属性)

  <script>         
    //12.用Object.key(obj)遍历
        //创建一个dog类 有name、age属性 
      function dog () {
            this.name = "nana";
            this.age = 9;
        }
        var dog1 = new dog();
        //给dog1 添加一个 go的属性
        Object.setPrototypeOf(dog1,{move:"wangwang"});
        //遍历dog对象里面的属性(key)  ---> 只能遍历对象自有的属性 不能遍历对象原型上的属性
        console.log(Object.keys(dog1));
        //遍历dog对象里面的属性值  .forEach(function(item,index){ }) //数组遍历元素的方法
       Object.keys(dog1).forEach(function(key){ 
        console.log(dog1[key]); // --->输出属性值  
       }); 
    </script> 

13.Object.values(obj)

遍历对象的所有value值 。(只能遍历对象自有的属性 不能遍历对象原型上的属性)

    <script>         
    //13.用Object.value(obj)遍历
        //创建一个dog类 有name、age属性 
      function dog () {
            this.name = "nana";
            this.age = 9;
        }
        var dog1 = new dog();
        //给dog1 添加一个 go的属性
        Object.setPrototypeOf(dog1,{move:"wangwang"});
       //遍历value值 
       console.log(Object.values(dog1)); //----> ['nana', 9] 
    </script> 

----->  

获取对象的 keys 数组:Object.keys(obj)

获取对象的 values 数组:Object.values(obj) 

<script>
    function dog(name,age){
        this.name = name ;
        this.age = age ;
    }
    var dog1 = new dog ("nana",9);
    console.log (dog1);
    console.log(Object.keys(dog1));
    console.log(Object.values(dog1));
</script>
Key 和 Value 输出的区别

 14.Object.toString( )
        返回对象的类型字符串(对象的类型字符串就是object),第一个是对象字符串类型object,第二个参数是该值的构造函数

    <script>
    var dog1 = {name:"dog1"}
      console.log(dog1+"") //[object Object]
      console.log(dog1.toString())  // [object Object]
      // 用该方法可以更精准的判断数据类型
     /*   Object的toString内部的this指向的是Object对象,
      用call方法改变this的执行,可以把this执行为需要判断的数据,
      toString返回的第二个参数则是产生该值的构造函数(js的字符串,数字等在js运行时都会包装为对应的对应) */
      console.log(Object.prototype.toString.call(2)) // [object Number] 为number类型
      console.log(Object.prototype.toString.call({})) // [object Object] 为对象类型
      console.log(Object.prototype.toString.call('')) // [object String] 字符串类型
      console.log(Object.prototype.toString.call(true) === "[object Boolean]") // [object Boolean]
      console.log(Object.prototype.toString.call([])) // [object Array]
      </script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试必备:分库分表经典15连问

前言 大家好&#xff0c;我是田螺。我们去面试的时候&#xff0c;几乎都会被问到分库分表。田螺哥整理了分库分表的15道经典分库分表面试题&#xff0c;大家看完肯定会有帮助的。 公众号&#xff1a;捡田螺的小男孩github地址&#xff0c;感谢每颗star&#xff1a;github 1. 我…

Jmeter随机参数各种搭配

目录&#xff1a;导读 前言 一、两个固定值之间随机生成一个值&#xff0c;应用场景没有限制 二、接下来使用CSV文件按提前写好的值作为参数&#xff0c;执行场景需要提前根据实际情况配置好执行次数 三、在固定的多个值中&#xff0c;随机选取一个值作为参数&#xff0c;执…

Smconf(分布式配置管理框架)概述

Smconf 专注于分布式环境下的配置的统一管理。采用 JavaZookeeperMongodbSpring Boot 开发。目前只支持 Java&#xff0c;其他的使用语言需要通过调用 REST API 来实现。 每个技术人都有一个开源的梦想&#xff0c;那就是自己也能开发出一个让很多人使用的框架。其实分享使用不…

8个巧用iOS备忘录的方法,别浪费了几千块的iPhone手机

你用过ios系统的备忘录吗&#xff1f;是不是只用来记录生活的一些事项呢&#xff1f;如果是这样那就太浪费啦&#xff01;这里分享8个小技巧&#xff0c;快学一学让你的备忘录能物尽其用吧&#xff01;1.笔记-横线与网格大家是不是觉得备忘录的背景光秃秃的&#xff1f;其实是有…

antv/g6基本使用教程

安装 & 引用 在项目中引入 G6 有以下两种方式&#xff1a;npm 引入&#xff0c;CDN 引入。 1 在项目中使用 npm 包引入 Step 1: 使用命令行在项目目录下执行以下命令&#xff1a; npm install --save antv/g6 Step 2: 在需要用的 G6 的 JS 文件中导入&#xff1a; imp…

JSP ssh免疫疫苗管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh免疫疫苗管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S 模式开发。开发环境为TOMCAT7.0…

linux 终端分屏工具 tmux

引言&#xff1a;我们在用 MobaXterm 的时候会 经常遇到窗口不够用的时候&#xff0c;而且切换窗口也比较费时间&#xff0c;所以就需要一个工具&#xff0c;一个终端窗口可以打开多个终端。 sudo apt-get install tmuxtmux输入tmux进入。 上下分屏&#xff1a;ctrl b 再按 &…

【深度学习动手做】Dataset类,读取数据库中带标签的图片

用于将带标签的数据读取&#xff0c;比如我有一个分类“蚂蚁”和“蜜蜂”的任务&#xff0c;其工作目录下有以下&#xff1a; data文件夹、read_data.py ... 其中data文件夹下一级又分为“train”&#xff0c;"val”&#xff0c;然后按照标签分为两个文件夹“ants”&#…

[附源码]Python计算机毕业设计辅导员班级量化管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

高级前端常见手写面试题指南

Function.prototype.call 于call唯一不同的是&#xff0c;call()方法接受的是一个参数列表 Function.prototype.call function(context window, ...args) {if (typeof this ! function) {throw new TypeError(Type Error);}const fn Symbol(fn);context[fn] this;const r…

怎么注册自己的网站?

怎么注册自己的网站&#xff1f;现在很多个人用户会注册自己的网站&#xff0c;那么怎么注册自己的网站呢&#xff1f;对于懂代码的人来说就好办了&#xff0c;自己开发即可&#xff0c;若不懂代码的话又怎么开发呢&#xff1f;毕竟自学代码知识也不太实际&#xff0c;其实也是…

设计模式概述之工厂方法模式(二)

很多小伙伴&#xff0c;不知道设计模式是什么&#xff1f; 通常我们所说的设计模式是一种设计方案&#xff0c;是前人留下的经验及最佳实践。 想要学习设计模式&#xff0c;至少要把面向对象的基本结构全部了解。 设计模式&#xff0c;是建立在一定基础上的思维训练。 学习设…

volatile,wait,notify关键字

文章目录一、volatile关键字二、wait 和 notifywaitnotifynotifyAllwait 和 sleep 的区别顺序打印ABC一、volatile关键字 volatile关键字的存在是用来解决内存可见性问题的。 我在 &#xff1a;线程安全问题 这篇文章中介绍过内存可见性问题。 前面我们讨论内存可见性时说了,…

教程十 在Go中使用Energy创建跨平台GUI应用 - 事件通信(IPC) 之 Go定义事件JS调用

介绍 Energy Go和JS的事件通信, Go监听事件JS触发。 IPC事件还有其它的几种使用方式&#xff0c;在其它教程中更新 在正常前后端大多数开发场景&#xff0c;JS和Go前后端数据交互都需要Http接口方式交互。 Energy中可以不使用Http&#xff0c;使用事件通信机制&#xff08;…

使用ProGuard插件对Spring Boot程序进行代码混淆

使用ProGuard插件对Spring Boot程序进行代码混淆 介绍&#xff1a; ​ ProGuard是一个开源的Java类文件&#xff08;只能处理Java代码&#xff0c;但是对应资源文件等是不能起作用的&#xff09;的压缩器、优化器、混淆器和预校验器。其处理的过程主要分为以下几个步骤&#…

系统移植总结

1&#xff1a;什么是系统移植 1&#xff09;系统移植是给开发板搭建一个Linux操作系统 2&#xff09;从官方获取源码&#xff0c;进行配置和编译&#xff0c;生成板子需要的镜像 2&#xff1a;安装tftp服务器的作用 Tftp服务器&#xff1a;是基于UDP协议完成简单的文件传输 作…

mysql sql优化(索引优化)经验漫谈

文章目录1. 当用sql查找是否“存在”场景2. where 条件 in的限制3. updade语句要不要考虑索引的命中情况4. mysql 预编译 多线程5. 函数与索引失效的关系6. mysql隐性类型转换与索引失效的关系7. 联合索引8. 联合索引最左匹配原则9. 回表 索引覆盖 聚簇索引 非聚簇索引10. 前缀…

这下真的是阳了个阳!

实际情况 很不幸&#xff0c;在前天&#xff0c;出现了新冠阳性的症状&#xff0c;随后用抗原检测了下&#xff0c;有阳的条带出现&#xff08;很浅&#xff0c;弱阳&#xff0c;因为才出现症状&#xff09;&#xff0c;基本上就是确定阳了。 抗原检测不知道今天是第几天了&…

第40篇 网络(十)WebKit初识

导语 WebKit是一个开源的浏览器引擎。Qt中提供了基于WebKit的QtWebKit模块&#xff0c;它包含了一组相关的类。QtWebKit提供了一个Web浏览器引擎&#xff0c;使用它便可以很容易的将万维网&#xff08;WorldWide Web&#xff09;中的内容嵌入到Qt应用程序中。与此同时&#xf…

大二Web课程设计——基于HTML+CSS+JavaScript+jquery手表商城购物网站(17页)

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…