# 章序号/节序号/节/笔记序号 objects, advanced objects # 概念阐释 ## 语义 在JavaScript中虽然没有**私有**属性和方法,但有一个约定俗成的用法`_`虽然这不能阻止开发人员访问和修改,但是一种隐私信号。 这种属性必须用[[js objects get方法获取属性|get]]来访问,用[[js objects set方法更新属性|set]]来修改。 如果在调用时写成`obj._privaceProperty`是可以访问的,但是这违反了封装原则,而如果写成`obj.privaceProperty`,则会显示`undefined`。 ## 语法 ```js let obj = { _privacyProperty: , _privacyMethod(){ } } ``` # 举例子 ![](http://image.harryrou.wiki/2023-03-30-CleanShot%202023-03-30%20at%2008.15.29%402x.png) - 隐私属性仍然可以重新赋值 - 还会有副作用,会答应出奇怪的字符,见本课[练习题](https://www.codecademy.com/courses/introduction-to-javascript/lessons/advanced-objects/exercises/privacy) # 类比、比较与对比 # 问题 # 问题答案 # 备注(经验集/错误集)