用户:
迷失冷光查看: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指的就是离函数最近的对象
————————————————————————————————————————————
那么本期教程就到这里了
如有不对之处烦请纠正