猫史档案馆


【不懂就问】为什么?

用户:SKQASKQA查看:11 回复:12 评论:11 创建时间:2022-08-16T21:56:25


var obj = {a:0}
obj.b = obj = {a:1}
console.log(obj)   //{a:1}
console.log(obj.a) //1
console.log(obj.b) //undefined


回复

上一页1 页 / 共 1下一页
DebugDynamoDebugDynamo

【 不懂就问】俺也一样()()()

点赞0


评论


FML饭米粒FML饭米粒

因为你重新赋值了obj啊

把你之前赋值的obj.b冲掉了a

我猜的a

点赞0


评论


萌新大佬萌新大佬

blog.csdn.net/lucky569/article/details/108578500

点赞0


评论


囧仙_official囧仙_official

我不到啊(

但是如果obj.b=obj,那么就是无限嵌套,然后就炸了)

点赞0


评论


Chengxuyee_已退Chengxuyee_已退

不知道()到知识盲区了()大家一起努努力顶这个帖子()争取让Alan看到()

点赞0


评论


我爱Kitten我爱Kitten

ddd

点赞0


评论


我爱Kitten我爱Kitten

ddd

点赞0


评论


我爱Kitten我爱Kitten

頂)!

頂)!

頂)!

点赞0


评论


独立的暴风雀tHId独立的暴风雀tHId

我试了一下,把"= {a: 1}"去掉就行了

var obj = {a:0}
obj.b = obj
console.log(obj)   // {a: 0, b: {{a: 0, b: {{a: 0, b: {{a: 0, b: {...}}}}}}}}
console.log(obj.a) //1
console.log(obj.b) // {a: 0, b: {{a: 0, b: {{a: 0, b: {{a: 0, b: {...}}}}}}}}

不知道是为什么

点赞0


评论


全能代码师全能代码师

new Object

点赞0


评论


独立的暴风雀tHId独立的暴风雀tHId

用python复刻:

class Obj(object):  # 创建一个可更改属性值的对象
    pass


temp = Obj()  # temp: {}
temp.a = 2  # temp: {'a': 2}

obj = Obj()  # obj: {}
obj.a = 1  # obj: {'a': 1}
obj.b = obj = temp  # obj: {'a': 2}  这句语句的执行顺序:obj.b = obj  obj = temp

print(vars(obj))  # {'a': 2}  在python中,vars(xxx)可获得xxx的属性和值的字典

点赞0


评论


Star_Ink_sansStar_Ink_sans

顶一顶让Alan看到()

点赞0


评论