js对象操作(object)

时间:2023-08-26
本文章向大家介绍js对象操作(object),主要内容包括声明对象、对象赋值、对象动态赋值、 JavaScript 判断对象属性是否存在(对象是否包含某个属性)、判断是否是自身属性、 修改对象属性值、使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

声明对象

var can_args = new Object();

对象赋值

can_args={"vue":300,"jquery":200……};

对象动态赋值

第一种:

let key = "id";
let value = 2
can_args[key] = value;

第二种:

var obj1={"vue":300,"jquery":200};
var obj2={"react":500};
can_args={
    obj1,
    obj2
}

第三种:

let obj4 = {a:"1"};
let obj5 = {b:"2"};
let obj6 = {c:"3"};
can_args.assign(obj4,obj5,obj6);

参考文献:js动态往对象添加数据_js往对象中添加数据_Herib的博客-CSDN博客

 JavaScript 判断对象属性是否存在(对象是否包含某个属性)

 第一种:使用 in 运算符,用法是属性名 in 对象,如果存在返回 true,反之为 false,来看个例子

in 只能判断对象有没有这个属性,无法判断这个属性是不是自身属性)

var echo = {
    name:'听风是风',
    job:undefined
};
console.log('name' in echo);   //true
console.log('job' in echo);    //true
console.log('age' in echo);    //false

判断是否是自身属性

一个最简单的构造函数创建实例的例子:

function Parent(){
    this.name = 'echo';
};
Parent.prototype.age = 26;
var o = new Parent();
o.name//echo
o.age//26

在这个例子中,对于实例 o 而言,name 就是是自身属性,这是它自己有的,而 age 是原型属性,o 虽然没有这个属性,但在需要时,它还是顺着原型链找到了自己的老父亲 Parent,并借用了这个属性。

所以当我们用 in 判断时可以发现结果均为 true:

'name' in o;//true
'age' in o;//true

针对这个问题,如果我们还要判断是否是自身属性,就得借用方法hasOwnProperty()

hasOwnProperty()做了两件事,除了判断对象是否包含这个属性,还判断此属性是不是对象的自身属性。

o.hasOwnProperty('name');//true
o.hasOwnProperty('age');//false

参考文献:JavaScript 判断对象属性是否存在(对象是否包含某个属性)_js 查找属性_thankseveryday的博客-CSDN博客

 修改对象属性值

当对象以数字为属性名时,其实就是一个数组,用[’’]

var foo={1:'a',2:'b'}
foo['1']='c'
console.log(foo) // { 1: "c", 2: "b" }

当对象以字符为属性名时,直接用.获取属性值

var bar = {a:1,b:2,c:3}
bar.a= 'hello';
//或
bar["a"]='hello'; console.log(bar)
//{ a: "hello", b: 2, c: 3 }

其中就是[]与.的区别,中括号运算符[]可以存取数组元素值,使用点运算符.可以存取对象属性值。

参考文献:

JS修改对象属性的值_js修改对象的某个属性的值_龙井茶奇遇的博客-CSDN博客

JS操作对象属性(获取、添加、删除、修改对象属性) (biancheng.net)

原文地址:https://www.cnblogs.com/ZhuMeng-Chao/p/17658541.html