在JavaScript中,关于面向对象和构造函数,以及原型的概念
1、什么是面向对象?
面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,
扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
面向对象是一种对现实世界理解和抽象的方法,
面向过程的封装
2、面向对象的好处
1、易维护(局部改变) 2、质量高(可以重复调用) 3、效率高 4、易扩展
3、面向对象的三大特征
1.封装(封装代码) 五大原则: 1、单一职责原则(SRP)
2.继承() 2、开放封闭原则(OCP)
3.多态() 3、里氏替换原则(LSP)
4、依赖倒置原则(DIP)
5、接口隔离原则(ISP)
4、构造函数是什么?
构造函数是指,函数,通常用来初始化对象的;
特点:首字母大写
构造函数:给对象添加属性,初始化属性用的
5、构造函数的执行过程
1, new 申请内存, 创建对象
2, 调用构造函数, 构造函数有一个隐式参数, 即 this
3, 刚创建出来的对象的引用 赋值给 this, 由函数处理
4, 在构造函数中利用 this.成员 = 值 来给对象添加成员 .
6、构造函数的使用注意事项
1)方法名必须和类名一致
2)构造函数木有返回值。
3)构造函数是可以重载的。
4)如果不写构造函数,系统会默认为我们添加一个无参数的构造函数。
5)一旦定义了构造函数,系统默认添加的无参构造函数就木有了。
6)子类的构造函数,会默认调用父类的无参构造函数。
7、什么是原型---------------prototype
所有函数对象proto都指向 Function.prototype,它是一个空函数(Empty function)
prototype是JS实现继承的一种模型。
function Person () {
this.name = 'John';
}
var person = new Person();
Person.prototype.say = function() {
console.log('Hello,' + this.name);
};
person.say();//Hello,John
8、原型的作用是什么?
原型对象的用途是为每个实例对象存储共享的方法和属性,它仅仅是一个普通对象而已。并且所有的实例是共享同一个原型对象,因此有别于实例方法或属性,原型对象仅有一份。
person.say == new Person().say
在js中,对象在调用一个方法时会首先在自身里寻找是否有该方法,若没有,则去原型链上去寻找,依次层层递进,这里的原型链就是实例对象的__proto__属性。