- 数据属性
数据属性包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有 4 个描述其行为的特性。
- 访问器属性
访问器属性不包含数据值;它们包含一对儿 getter 和 setter 函数(不过,这两个函数都不是必需的)。在读取访问器属性时,会调用 getter 函数,这个函数负责返回有效的值;在写入访问器属性时,会调用setter 函数并传入新值,这个函数负责决定如何处理数据。(只指定其中get或者set意味着属性是不能写,尝试写入属性会被忽略。)
- Object.defineProperties()
- Object.getOwnPropertyDescriptor()
可以取得给定属性的描述符。
用函数来封装以特定接口创建对象的细节构造函数模式
缺陷:没有解决对象识别的问题
- 将构造函数当作函数
- 构造函数的问题
每个方法都要在每个实例上重新创建一遍。
每个函数都有一个 prototype (原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
- 对象实例添加一个属性时,这个属性就会屏蔽原型对象中保存的同名属性。
- 把原型修改为另外一个对象就等于切断了构造函数与最初原型之间的联系。
通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型。
创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象
没有公共属性,而且其方法也不引用 this 的对象。稳妥对象最适合在一些安全的环境中(这些环境中会禁止使用 this 和 new ),或者在防止数据被其他应用程序(如 Mashup程序)改动时使用。
依靠原型链来实现
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/40241.html