什么是js面向对象?

1.首先,js面向对象是一种思想;

2.其次,遵循万物皆对象的准则;程序中的关键模块都可以视为对象,对象都是由属性和方法组成,属性可以理解为对象的特征,是静态的,方法可以理解为对象的行为,是动态的;例如,在汽车这个对象中,他的颜色,型号,大小就是他的属性,而行驶则是他的方法;

3.面向对象会使用对象的属性和方法,它不关注内部的细节和过程;同时也会构造对象。

4.在js中,所有的对象可以分为普通对象和函数对象。而Object ,Function 是JS自带的函数对象。凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。

面向对象有什么特点?

1.抽象:a)抽象是面向对象最为重要的特征。对象本身的状态与行为,以及对象之间的关系,都是抽象的结果。没有抽象,就没有对象,也就谈不上面向对象了。抽象是一种思维习惯,因此,抽象是面向对象的第一特征。b)把同类的对象共有的属性或方法抽出封装成单独的对象,在用到的时候给相应的对象使用;

以学生为例,把他的共同属性提取出来,比如,名字,学号等,而像爱玩还是爱学习,好动还是好静等这些不同的属性可以摒弃;

2.继承:简单来说就是一个对象继承另一个对象的属性和方法;

有两种继承方式:1,对象冒充,优点是可以实现多重继承,初始化 继承自父类的参数;缺点是浪费内存资源,所有的实例都会有一份成员方法的副本;2.原型方式,是指利用了prototype或者说以某种方式覆盖了prototype,从而达到属性方法复制的目的。

举个例子,儿子能继承父亲的姓,孙子也能继承父亲的父亲的姓;

3.封装:复杂的问题简单化,只考虑功能和结果,不考虑过程和内部细节。

举例jq库的使用。

4.多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。换句话说是引用类型在不同情况下的多种状态;

比如在js中的‘+’,在字符串中是链接作用,在数字中间是加法运算;再比如上课铃响了,上体育课的学生跑到操场上站好,上语文课的学生在教室里坐好一样。

多态最常见的三种方法:重载,重写,接口

什么是js面向对象?有什么特点?相关推荐

  1. JavaScript – 6.JS面向对象基础(*) + 7.Array对象 + 8.JS中的Dictionary + 9.数组、for及其他...

    6.JS面向对象基础(*) 7.Array对象 7.1 练习:求一个数组中的最大值.定义成函数. 7.2 练习:将一个字符串数组输出为|分割的形式,比如"刘在石|金钟国|李光洙|HAHA|宋 ...

  2. JS面向对象一:MVC的面向对象封装

    JS面向对象一:MVC的面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) 面向对象里面向的意思是以...为主,面向对象编程既以对象为主的编程. 面向对象的一 ...

  3. java实现选项卡定时轮播_原生js面向对象编程-选项卡(自动轮播)

    原生js面向对象编程-选项卡(自动轮播) }#div1 input{color:#fff;width:100px;height:40px;background:darkseagreen;border: ...

  4. js面向对象程序设置——创建对象

    <script type="text/javascript">              //工厂方式         //1.原始方式         /* var ...

  5. 简单粗暴地理解js原型链–js面向对象编程

    简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...

  6. 对js面向对象的理解

    转自:http://www.cnblogs.com/jingwhale/p/4678656.html js面向对象理解 ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP ...

  7. JS面向对象的程序设计之继承-继承的实现-借用构造函数

    JS面向对象的程序设计之继承-继承的实现-借用构造函数 前言:最近在细读Javascript高级程序设计,对于我而言,中文版,书中很多地方翻译的差强人意,所以用自己所理解的,尝试解读下.如有纰漏或错误 ...

  8. js面向对象与PHP面向对象总结

    js面向对象: 1.什么是对象? 对象:任何实体都是对象,拥有属性和方法两大特征 属性:描述事物的特点: 方法:实物拥有的行为: 2.在JS里 Person.name="zhang" ...

  9. ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能

    前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...

  10. JS面向对象特性和值类型与复合类型

    JS面向对象之特性已经值类型与复合类型 一些属性 空对象 空对象也是对象, 只是有存变量的变量名, 没有对象属性 var o ={}; 参数传递 值类型: 函数内外两个变量, 两个数据, 都不相同 引 ...

最新文章

  1. Java复制目录/子目录/文件
  2. windows下安装和配置Redis
  3. (转)MySQL 服务器内存使用
  4. 希腊字母常用指代意义及其中文读音
  5. 小程序上拉加载,下拉刷新
  6. php zip 编码,encoding - 用PHP如何检测一个ZIP包内的文件是在何种编码的系统下创建的...
  7. 使用 Azure CLI 将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager 部署模型
  8. 强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!
  9. 推荐系统组队学习——协同过滤
  10. 基于RV1126平台imx291分析 --- imx291注册
  11. 系统分析和设计方法之数据建模和分析
  12. 计算机 运行新ie 命令,怎样修复ie浏览器-运行什么命令可以修复IE浏览器,请说的详细 – 手机爱问...
  13. ros路由器l5和l6的区别_ESXI安装Mikrotik RouterOS(ROS)软路由部署指南(附授权镜像下载)...
  14. 通信工程专业选修java_北邮通信工程专业选修课心得分享
  15. 史玉柱自述创业历程,我思故我在
  16. 腾讯音乐路演PPT曝光:发行区间13至15美元 下周上市
  17. android创建平板模拟器,模拟器创建
  18. 2022最新圣诞节代码:圣诞树
  19. 计算机网络考研_概述
  20. Coursera | Applied Data Science with Python 专项课程 | Applied Machine Learning in Python

热门文章

  1. 【水浒传】——鲁智深
  2. Redmi K60 Pro参数配置怎么样 性能怎么样 红米 K60 Pro屏幕参数
  3. UE4-密室逃脱小游戏学习-2 建立一个小房子
  4. table传统布局及实例
  5. android仿ios菊花,简易仿ios菊花加载loading图
  6. 计算机毕业设计Java住院管理系统(源码+系统+mysql数据库+Lw文档)
  7. 便携式多普勒超声波流量计(水测家)
  8. Mac电脑上给google浏览器安装json解析插件
  9. 我爱我妻 让你看一遍哭一遍 - 转载
  10. 纯前端,使用xlsx库,封装导出Excel表格方法