什么是面向对象:
  使用对象时,只关注对象提供的功能,不关注其内部的细节 例如:jquery
什么是对象:
  对象是一个整体对外提供一些操作,比如 收音机
面向对象编程OOP的特点:
  1、抽象:把主要的特征、跟问题相关的特征抽出来
  2、封装:看不到里面的东西,把表面的功能用好
  3、继承:遗传,从父类上继承出一些方法,子类又有一些自己的特性(最大限度重用已有的代码)
继承又分:
  多重继承
  多态继承
对象的组成:
  1、方法——相当于函数:过程、动态 例如:
  

function aaa(){		  //函数 自由
  alert("123")
} arr = [1,2,3];
arr.aaa=function(){ //属于一个对象
  alert("321")
}
aaa()
arr.aaa()

  2、属性——相当于变数:状态、静态 例如:

var a=12	  //变量 - 自由自在的不属于任何人
alert(a) var arr=[1,2,3,4,5,6]
arr.a=21 //属性 - 属于一个对象的
alert(arr.a)

  

this的理解
  当前发生事件的对象
  当前的方法属于谁
 
  练习题:写一个面向对象的小例子
var obj = new Object();

obj.name='林肯';
obj.qq='2669667558'; obj.Myname=function(){
alert("我的名字是"+this.name);
}
obj.Myqq=function(){
alert("我的QQ是"+this.qq);
}
obj.Myname();
obj.Myqq();
  总结:创建一个对象,写出程序的方法,在调用。 但是这种方法复用性不高。 优化以后如下:
 
//工厂模式
function oriented(name,qq){ //整体称之为什么:构造函数
//原材料
var obj = new Object(); //加工
obj.name=name;
obj.qq=qq; obj.Myname=function(){
alert("我的名字是"+this.name);
}
obj.Myqq=function(){
alert("我的QQ是"+this.qq);
} //出厂
return obj
}
var obj=oriented('林肯','2669667558');
obj.Myname();
obj.Myqq(); var obj2=oriented('赵三','2669667558');
obj2.Myname();
obj2.Myqq();
这样写:可以让方法复用

  

原型——prototpye
什么是原型
  可以把原型理解为class,修改他可以影响一类元素
  //解决函数重复 <==>原型
  //原型名词解释
  // CSS JS
  // class 一次给一组元素加样式 原型
  // 行间样式 一次给一个元素加样式 对对象加事件
 
  /*例子:原型 数组求和 <==> 类和对象的使用 类可以new */
  

var arr1 = new Array(12, 13, 11, 14, 53, 67, 86, 85, 23);
var arr2 = new Array(11, 22, 33, 44, 55, 66, 77, 88);
Array.prototype.sum = function () {
var result = 0;
for (var i = 0; i < this.length; i++) {
result += this[i];
}
return result;
};
//alert(arr1.sum());
 
在已有的对象中添加属性,方法
 

最新文章

  1. .Net开发笔记(二十)创建一个需要授权的第三方组件
  2. 神奇的Noip模拟试题一试 2 排队
  3. linux vi查找命令
  4. 对于java用发送http请求,请求内容为xml格式
  5. Android开发中与服务器交互时,遇到java.io.IOException: Target host must not be null的问题
  6. SQL Server内存
  7. hibernate flushMode 错误
  8. Linux下如何查看系统启动时间和运行时间以及安装时间
  9. 【转】浅谈Java中的hashcode方法
  10. SpringMVC+Swagger详细整合
  11. PHP中如何命令行
  12. 【异常及源码分析】org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping
  13. Spring 获取资源文件路径
  14. 两种请求方式URLHttpconnection 和Httpclient提交表单 网络篇(二)
  15. selenium 等待元素加载
  16. C2 CompilerThread0 如果抓到的java线程dump里占用CPU最高的线程是这个,99%可能是因为服务重启了
  17. framwork maven的配置及使用
  18. jenkins 执行shell命令出错command not found 和No such file or directory
  19. [ecmanget][常用标签]bookmark
  20. java的几个特性

热门文章

  1. SQL中Group By的使用(转)
  2. HDU 2079 选课时间(母函数模板题)
  3. [USACO18JAN] Cow at Large G (dfs)
  4. [LeetCode] 242. 有效的字母异位词 valid-anagram(排序)
  5. Linux用shell链接上传文件
  6. java用freemarker实现导出excel
  7. HDU 5187 zhx&amp;#39;s contest(防爆__int64 )
  8. sap abap 对字符串的操作
  9. 【MVC架构】——怎样利用Json在View和Controller之间传递数据
  10. PHP第八课 字符串拆分经常使用函数