对象以及面向对象基本概念
对象字面量(object literal)
const cat = {
name : 'Bertie',
breed : 'Cymric',
color : 'white',
greeting: function() {
console.log(`Hello, said ${ this.name } the ${ this.breed }.`);
}
}
属性遮蔽(shadowing properties)
类与实例,继承(Inheritance),派生(derive),超类(superclass)或父类(parentclass),子类(subclass或child class)。
多态(polymorphism),重写/重载(override)。
封装(encapsulation)。
也有部分语言并不采用强制措施阻止外部代码访问对象的 私有属性,在这种情况下,程序员们通常会采用一些约定俗称的命名方式来标记对象的私有部分,例如将以下划线开头的变量名看作是对象的私有部分。
在 JavaScript 中,我们经常会使用函数或对象字面量创建对象,也就是说,JavaScript 可以在没有特定的类定义的情况下创建对象。
原型链的行为不太像继承,而更像是委派(delegation)。
私有属性用#