猫史档案馆


【JS】教程,对象进阶

用户:迷失冷光迷失冷光查看:4 回复:4 评论:4 创建时间:2021-03-01T13:10:34


emmm

今天的主角是

对象

希望某些人不要误解……

之前吉吉喵也讲过了

没事,温故而知新

首先

对象的写法:

a = {
    b: 1,
    'c': 2,
}

*差不多类似的

下面要正式开始了:

1.(不知道写什么标题):

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

大家看出了什么?

别跟你说结论不知道

一般我们说取对象的索引用[string]

但此处可以发现索引和普通对象(obj)的变量是可以互换的

怎么写都可以

2.JSON:

JSON就是对象序列化

也就是可以将对象变成字符串

然后存到数据库里

方法:

(1)对象转字符串:

a = {
    b: 2,
}
JSON.stringify(a)//"{"b":2}"

(2)字符串转对象:

(有两种方法(我已知))

1.JSON.parse(string);
2.eval('('+string+')');//至于为什么要加括号呢,我也不知道

大家别把编号写进去了

这里我就不举例子了

3.指针:

每个对象都有一个指针。——林思琪贵

举个例子:

a = {
    b: 1,
}
c = a;
c.b = 2;
console.log(a.b);//1

上图中改变c的b也改变了a的,

为什么呢?

大家可以理解c = a这里把c设为了a的那个花括号

也就是c就是a,改变c就是改变a

那这个问题怎么解决呢?

解决方法,如下:

a = {
    b: 1,
}
c = {};
Object.assign(c,a);

Object方法等下会讲到

4.Object方法:

(这里的方法不是指自定义的方法)

话说Object本身是一个对象

有各种(很多)方法

(1)assign:

刚才也提到了

assign是合并的意思

a = {
    s: 2,
}
b = {
    u: 6,
}
c = {};
Object.assign(c,a,b);
console.log(c.s);//2
console.log(c.u);//6

assign第一个参数是目标

后面可以填无数个对象(当然奉劝大家不要填无限个)

注意:

a = {
    b: 2,
}
c = {
    b: 3,
}
d = {};
Object.assign(d,a,c);
console.log(d.b);//3

意思就是assign会将变量设为后面的

5.Object.function:

这里当然不是让你在后面写上function

会报错的

(生活中)我们经常会看到一个对象带个点后面调用一个函数

比如你们的噩梦:

entity.hurt(10);

这里entity是对象,hurt是函数

写法:

a = {
    b: 3,
    c: function(number){
        a.b = number;
    }
}
a.c(15);
console.log(a.b);//15

这样是不是感觉很没用

因为用普通function也可以改变?

下一章我们讲重点

6.this

this指的就是调用这个函数的对象

什么意思呢?

看:

a = {
    b: 4,
    c: function(){
        console.log(this.b);
    }
}
a.c();//4
a.b = 5;
a.c();//5

上面的代码中this指的就是a

那么问题就来了:

a = {
    b: 3,
    c: {
        b: 5,
        d: function(){
            console.log(this.b);
        }
    }
}
a.c.d();//5

这是怎么回事呢?

意思就是this指的就是离函数最近的对象

————————————————————————————————————————————

那么本期教程就到这里了

如有不对之处烦请纠正

 


回复

上一页1 页 / 共 1下一页
神岛吉吉喵神岛吉吉喵

棒哦!帮顶emotion_编程猫_加油

点赞0


评论


MrAssMrAss

不错

点赞0


评论


迷失冷光迷失冷光

上精了?

点赞0


评论


南方一霸南方一霸

有没有手把手教从0开始...................原谅我没学过

点赞0


评论