JS面向对象原理(一)------面向对象编程发展史

本文介绍了JavaScript面向对象编程的发展,从普通模式、工厂模式、构造函数模式到原型模式,探讨了各模式的特点和问题,重点阐述了new操作符的作用以及原型链的属性查找机制。文章总结了各种模式在创建对象时的优势与不足,为理解JavaScript中的对象创建和共享提供了深入理解。
摘要由CSDN通过智能技术生成
上周晚上有个朋友让我给她讲关于原型链的知识,我以为这都是小菜一碟,但是一番讲解下来才发现原来我熟悉的也不过是原型链的一小部分,当往上讲到Function和Object以及内置构造函数的时候,就有些牵强了。于是打算写一系列关于原型链这部分的内容。那就写吧,那要从哪里开始写起呢?说原型链,我想到的是为什么会有原型链,什么是原型链,利用原型链我们可以做什么。所以这系列的内容也会按照这个顺序来写。 本章主要讲述的内容是为什么会有原型链。


JavaScript面向对象编程发展史

Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”但是,js并不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。那如果我们想要把一些属性和方法封装成一个对象,我们应该怎么做呢?首先,我们要有对象。

1.普通模式创建对象
//Object构造函数创建
var person = new Object()
person.name='css';
person.sayhi=function(){
   
	console.log('hi,i am'+this.name)
}
//字面量创建,与上面效果相同
var person={
   
	name:'css',
	sayhi:function(){
   
		console.log('hi,i am'+this.name)
	}
}

在这个对象中,name是数据部分,sayhi是数据的行为部分,把数据和数据的行为封装到一起,就构成了一个完整的对象。这种不关心对象里的数据(name)是什么,只关心对象里的数据能做什么(sayhi),并且把数据和数据的行为封装到一起构成一个对象的编程思想叫做面向对象编程,面向对象编程思想的核心就是把万物都抽象成一个一个对象。

注:与面向对象编程相对应的编程思想是面向过程编程,它把数据和数据行为分离,分别封装成数据库和方法库。方法用来操作数据,根据输入的不同返回不同的结果,并且不会对输入数据之外的内容产生影响。与之相对应的设计模式就是函数式编程。

上面用到的两种方法就已经能满足我们的需求了。但是如果想创建一堆相似的对象,上面用到的方法就太麻烦了,试想一下,每创建一个对象就要手动添加属性和方法,那么创建100个呢?1000个呢?大家一般拿到这个需求可能就直接按部就班的上了:

	for(let i = 0;i<100;i++){
   
		var person = new Object()
		person.name='css';
		person.sayhi=function(){
   
		console.log(
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值