什么是对象:

对象是一个整体,对外提供一些操作。

什么是面向对象:

使用对象时,只关注对象提供的功能,不关注其内部细节,例如jquery

面向对象是一种通用思想,并非只有编程中能用,任何事情都可以用。

javascript中得面向对象:

面向对象编程(OOP)的特点:

抽象:抓住核心问题

封装:不考虑内部实现,只考虑功能使用

继承:从已有对象上,继承出新的对象

—多重继承

—多态

对象的组成:

—方法—函数:过程、动态的

—属性—变量:状态、静态的

用工厂方式构造对象:构造函数

<script>
//用工厂方式构造对象
function createPerson(name,sex){ //构造函数
var obj = new Object();
obj.name = name;
obj.sex = sex;
obj.showName = function(){
alert('我的名字叫'+this.name);
};
obj.showSex = function(){
alert('我是'+this.sex+'的');
};
return obj;
}
var p1 = createPerson('blue','nan');
p1.showName();
p1.showSex();
</script>

工厂方式的缺点:

1、没有new

2、每个对象都有自己的函数,这是极其浪费资源的。

this:当前的方法,属于谁。

Array类:不具备实际的功能,只能用来构造对象

arr对象:真正有功能的东西,被类给构造出来

用prototype方式来解决工厂方式问题。

<script>
var arr1 = new Array(,,,);
var arr2 = new Array(,,,,);
Array.prototype.sum = function(){
var result = ;
var i = ;
for(i=;i<this.length;i++){
result+=this[i];
}
return result;
};
alert(arr1.sum());
alert(arr2.sum());
</script>

原型的一个重要的功能(应用):可以扩展系统的对象

<script>
function Person(name,sex){
this.name = name;
this.sex = sex;
};
Person.prototype.showName = function(){
alert(this.name);
};
Person.prototype.showSex = function(){
alert(this.sex);
};
var p = new Person('blue','nan');
p.showName();
p.showSex();
</script>

实例:面向对象的选项卡

把面向过程的程序,改写成面向对象的形式

原则:不能有函数套函数的情况,但可以有全局变量

所有的代码都必须在window.onload里。

javascript笔记—面向对象的更多相关文章

  1. javascript笔记 面向对象

    Javascript是一种面向对象的弱语言,既然有面向对象,就有继承 继承: 1.call函数和apply函数:区别在于它们参数上的不同,固定参数的用call,可变参数的用apply.换句话说,就是a ...

  2. JavaScript笔记——面向对象与原型

    JavaScript也是一门面向对象的语言.面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,JavaScript竟然没有class,因此它的面向对象也 ...

  3. 我的JavaScript笔记--面向对象

        单例模式 ??(基于对象,不能批量生产)  var person = {             name: "ywb",             sayHi: funct ...

  4. JavaScript高程第三版笔记-面向对象编程

    之前有篇博客曾提到过一点js的面向对象编程:js面向对象编程. 这里就结合js高程详细剖析一下javascript的面向对象编程. 前序: 1⃣️Object.defineProperty() var ...

  5. [Effective JavaScript 笔记]第3章:使用函数--个人总结

    前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...

  6. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  7. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  8. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  9. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

随机推荐

  1. i = i++ 在java字节码层面的分析

    有这么一段代码: package zl.test; public class PcodeTest { /** * @param args */ public static void main(Stri ...

  2. Global.asax 文件说明

    引用 来自  http://www.cnblogs.com/jianshao810/archive/2011/02/03/1948912.htm 在网上找了N多相关的东西总说的不够细,现在终于找到了. ...

  3. Thinkphp利用微信多客服消息推送取货二维码消息

    首先看微信官方的说法: 当用户主动发消息给公众号的时候(包括发送信息.点击自定义菜单.订阅事件.扫描二维码事件.支付成功事件.用户维权), 微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改 ...

  4. VARIANT类型

    VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义.struct  tagVARIANT    {    union         {  ...

  5. 总结下js中匿名函数的写法~好几天没写博客了。。。

    小哥最近很是心烦啊,不仅仅要继续以现任前端小白,未来前端攻城狮的身份苦逼学习,还要用剩余的时间去完成毕业设计.早知如此,当初我为毛要报考数学这么个苦逼专业....昨天一整天的时间在研究毕设,感觉代码已 ...

  6. Scala单例对象、伴生对象实战详解

    1.Scala单例对象 Scala单例对象是十分重要的,没有像在Java一样,有静态类.静态成员.静态方法,但是Scala提供了object对象,这个object对象类似于Java的静态类,它的成员. ...

  7. PostCss 从0开始

    PostCss 摘自 http://ju.outofmemory.cn/entry/215105 http://www.w3cplus.com/PostCSS/postcss-deep-dive-pr ...

  8. 查看ORACLE中正在运行的存储过程 kill

    1:登陆PLSQL Developer,写一个存储过程,向一个表中插入值,并运行存储过程 2:打开PLSQL Developer的命令窗口 .--终止procedure   11.select * f ...

  9. Android updater-scripts(Edify Script)各函数详细说明(转)

    这是Android系统来运行updater-scripts的Edify语言的基本介绍. 大部分的Edify命名都是函数,当调用这些函数结束的时候,会返回数据给脚本.当然,你也可以使用这些函数的返回值来 ...

  10. ios webview 加载含有中文的URL网页显示白屏

    1. ios中的webview加载的URL不可以含有中文,解决办法说将中文字符转码, 如下: - (NSString *)URLEncodeString { NSCharacterSet *set = ...