学习了解JavaScript对象的继承机制api
Object是js的基本数据结构的一种,属于引用类型。浏览器
对象字面量写法数据结构
构造函数,经过构造函数来建立对象实例函数
Object()构造函数学习
create()方法this
// 对象字面量 let person1 = {name: 'jim'}; // 构造函数 function Person(name) { this.name = name; this.greeting = function() { console.log('hello my name is ' + this.name); } } let person2 = new Person('Bob'); console.log(person2.name); console.log(person2.greeting()); // Object() 方法 let person3 = new Object(); person3.name = 'kobe'; console.log(person3.name); person3 = new Object({ name: 'kobe2', age: 22 }); console.log(person3.name); // create() 方法 相似构造函数 let person4 = Object.create(person3); person4.name = 'kobe3'; console.log(person4.name,person3.name);
点表示法spa
中括号表示法prototype
let person = { name: 'xiaofei', age: 20 } console.log(person.name); console.log(person['age']);
JavaScript对象经过原型机制
从其余对象继承
功能特性code
每一个对象有一个私有属性[[prototype]]
,这个私有属性持有一个链接到另外一个称为其prototype
对象(原型对象)的连接。对象
__proto__
是浏览器对ES语法[[prototype]]
的实现api
prototype
属性指向的对象就是实例对象的原型对象即__proto__
所指引的对象
原型链,原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类推。这种关系常被称为原型链 (prototype chain),它解释了为什么一个对象会拥有定义在其余对象中的属性和方法。
例1
例2 经过原型链来检测对象所调用的方法是否存在,存在在哪一个原型对象上
person1除了name,age在对象对象中存在外,其余方法都是经过原型链的方法在Object上找到并调用。