JavaScript是面向对象的编程语言,如何创建对象和实现类的继承呢
创建对象的方式
new
操作符创建对象Object.creact(prototypeObj)
根据原型对象创建对象- 使用对象字面量 创建对象
使用new操作符创建对象,可以创建大量相似的对象,可以使用prototype
继承
对象字面量创建对象,比较灵活
构造函数
var obj = new Student();
new 操作符做了下面的事:
var obj = {};
obj.__proto__ = Student.prototype;
Student.call(obj);
return obj;
构造函数没有返返回值或者返回值是基本类型,则返回构造函数的>实例
构造函数返回对象类型,返回后面的对象
继承
JavaScript中没有类,如何实现继承呢?通过prototype
实现公用父类的属性和方法。
每个函数都有一个prototype
属性,该属性指向一个对象,该对象constructor
属性
每个对象都有一个__proto__
属性,该属性指向prototype
function inherits(Child, Parent) {
var pobj = Object.create(Parent.prototype);
pobj.constructor = Child.prototype.constructor;
Child.prototype = pobj;
}
//Es6用下面的方式,更清晰,但是原理都是通过原型实现的
class Child extends Parent {
}