首页 > 其他分享 >JS中创建对象的几种常见的方式

JS中创建对象的几种常见的方式

时间:2023-06-04 23:11:22浏览次数:50  
标签:属性 console log 方式 创建对象 几种 var JS name

创建对象方式

// 方式1
var obj1 = {"name": "方式1"}

// 方式2
var obj2 = {name: "方式2"}

// 方式3
var obj3 = new Object({"name": "方式3"});

// 方式4
var obj4 = new Object();
obj4.name = "方式4"

// 方式5:通过对象构造器创建对象
function ByMethodCreateObj(name) {
    this.name = name;
}
var obj5 = new ByMethodCreateObj("方式5")


// 方式6:通过class关键字创建对象,也有自己的构造器,与方式5很类似
class TestClass {
    staticClassVariable = "我是类属性"

    staticGetClassVariable() {
        console.log("我是类方法")
        return this.staticClassVariable
    }

    constructor(name) {
        this.name = name
        TestClass.prototype.testPrototype = function () {
            console.log("添加类自己的原型链属性")
        }
        /*
         此处的箭头函数使用起来与上方一样,可能需要注意this的指向问题
        TestClass.prototype.testPrototype = () => {
            console.log("添加类自己的原型链属性")
        }
        */
    }

    getName() {
        console.log("访问实例属性")
        return this.name;
    }

    setName(name) {
        console.log("设置实例属性")
        this.name = name
    }
}
var obj6 = new TestClass("方式6")
// 序列化时会自动忽略方法属性
console.log(JSON.stringify(obj6))

// ##################################### [ 特别的 ] #####################################

var obj7 = {
    // 字段属性
    "name": "方式7",
    m1: function () {
        console.log('方法属性1')
    },
    m2: () => {
        console.log('方法属性2')
    },
    "m3": () => {
        console.log('方法属性3')
    }
}
// 序列化时自动忽略方法属性
console.log(JSON.stringify(obj7))


遍历对象的属性

var testObj = {
    "field1": "1",
    "field2": "2",
    "field3": "3",
    "field4": "4",
    "field5": "5",
    "field6": "6",
    "field7": "7"
}
for (i in testObj) {
    console.log("key:" + i)
}

标签:属性,console,log,方式,创建对象,几种,var,JS,name
From: https://www.cnblogs.com/hhddd-1024/p/17456657.html

相关文章

  • JS中的异步编程
    目录前言什么是Promise?为什么用fetch?async、await基本使用方法ajax请求自定义请求HTML请求JSON请求ResponsemetadataPostformPostJSONFileupload注意点前言fetch是用来替代传统的XMLHttpRequest的。fetch的优点很多,包括链式调用的语法、返回promise等。什么是Promi......
  • threejs绘制多边形几何体
    threejs绘制多边形 //创建一个立方体几何体varcubeGeometry=newTHREE.BoxGeometry(0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5);//创建一个多边形几何体varpolygonGeometry=newTHREE.Geometry();//创建多边形的顶点数......
  • Js中var,let,const的区别总结
    目录区别var关键字let关键字const关键字区分var和let声明变量(作用域区别)var声明let声明因为let和const是es6的新特性,let和const的出现就是为了解决var的各种问题,因此在声明变量时能不用var就不用,强烈建议都用let和const声明变量和常量!区别1、var声明的变......
  • 在nodejs addon 环境下抓视频和音频数据包
    在nodeaddon环境下开发音视频,需要用到gyp。这个配置比较简单,很快可以配置好。比较坑的是,在vscode开发环境下,如果装了conda或者miniconda.有可能会影响gpy程序的编译。谨慎起见,可以看看控制台是否有(condabase)环境启动,可以想办法先脱离conda环境。废话不说直接......
  • js数组对象转树结构
    原始数组对象:letarr=[{id:1,name:"节点1",parentId:0},{id:2,name:"节点2",parentId:1},{id:3,name:"节点3",parentId:1},{id:4,name:"节点4",parentId:2},{id:5,name:"节点5&qu......
  • 高并发下的Node.js与负载均衡
     新兴的Node.js已经吸引了很多开发人员的眼光,它提供给我们一个快速构建高性能的网络应用的平台。我也开始逐步投入node.js的怀抱,在学习和使用的过程中,遇到了一些问题,也有一些经验,我觉得有必要写出来,作为总结,也用作分享。众所周知,node.js基于v8引擎,所以它本身并不支持多线程(有多线......
  • jsp调用数据库
    deviceInfos.jsp<%@pageimport="java.io.BufferedReader"%><%@pageimport="java.io.FileReader"%><%@pageimport="java.io.*"%><%@pageimport="java.sql.*"%><%@pagelanguage="java&qu......
  • 如何防止网站被爬虫爬取的几种办法
     今天想对一个问题进行分析和讨论,就是关于爬虫对网站页面爬取的问题,有些网站通过爬虫去采集其它的网站页面信息作为己用,大量的爬取行为会对web服务器有比较性能有影响,主要的表现就是会变得很慢。对于如何防止网站被爬取,我想从以下几种方法去分析:1.基于程序本身去防止爬取:作为爬虫......
  • nodejs调试工具
    Node应用调试工具debugger文档 http://nodejs.org/api/debugger.html内置的调试工具,支持基本的断点功能NodeInspector主页 https://github.com/node-inspector/node-inspector通过BlinkDeveloperTools提供的网页版JS调试工具来调试Node程序.NodeEclipse主页 http:......
  • uniapp中js中的闭包使用
    问题:在uniapp里面,使用闭包函数处理的时候,会导致$this不能全局使用。 解决方案:第一种代码写法(以循环为例):constobj={a:1,b:2,c:3}varkeys=Object.getOwnPropertyNames(obj)keys.forEach(function(key){console.log(key+'--......