文档章节

面向对象编程(OOP)----BLUE大师JS课堂笔记

老鸟的空间
 老鸟的空间
发布于 2014/06/28 17:48
字数 755
阅读 34
收藏 0
点赞 0
评论 0

1.面向对象时,只关注对象提供的功能,不关注其内部的细节。 如JQUERY

2.面向对象时一种通用思想,并非只有编程中能用,任何事情都可以用。如公司里的上传下达

3.面向对象编程(OOP)的特点,传统的书本会说:多态,封装,继承三大特点

   应该还能理解成抽象,封装,继承三大特点

   抽象:抓住核心问题

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

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

4.对象的组成

    方法---------函数:过程,动态的

    属性---------变量:状态,静态的

    变量和函数是自由的,属性和方法属于一个对象

5.this:当前的方法属于谁,this就是指谁    除了在函数面前有new的时候

  

复制代码

.name=.sex=

复制代码

var p1 = new Person("leo","男");

在这里的this是Object

原因是这个函数相当于

复制代码

function Person(name,sex)
{       var this = new Object();   //虽然在JS里面不能这么写,但是差不多是这个意思,创建一个新的对象。
       this.name=name;       this.sex=sex;          //给this对象赋属性
       return this;             //返回this}

复制代码

6.构造对象的函数称之为构造函数,不具备实际功能,只能用来构造对象   如:var arr = new Array();

7.工厂方式构造对象。工厂的工作流程是这样的a.原料   b.加工    c.出厂。用工厂方式构造对象也是一样的,首先要创建一个对象(加工),然后给对象添加方法和属性(加工),最后返回对象(出厂)。例子:

  

复制代码

function CreatePerson(name,sex)
{      var person = new Object(); //原料      
      person.name=name;
      person.sex=sex;
      person.show=function()
     {
          alert(this.name);
      }                                         //加工,给对象添加方法和属性

     return person;                    //出厂,返回对象}

复制代码

 

8.工厂的方式有2个问题。问题一:没有new;问题二:每个对象都有一套自己的函数,极其浪费资源。

   为了解决问题一:

复制代码

function Person(name,sex)
{        this.name=name;        this.sex=sex;
}var p1 = new Person("leo","男");

复制代码

用了一个new 把构造函数内部的 创建对象和返回对象给省去了。

   为了解决问题二:

Person.prototype.show=function()
{
       alert(this.name);
}

给原型添加了方法,基于这个构造函数创建出来的对象就都具有这个方法了,而且是共用一个方法,而不是像工厂模式那样的每个对象new一个function,这个极大地节省了资源,就像工厂生产蛋糕的模式,虽然生产出那么多得蛋糕,但是用的却是一个模子,而不是每生产一个蛋糕就用一个模子。

类---------------------模子

对象(实例)-----------蛋糕

原型一个重要应用-----扩展功能

9.为了区别普通函数和构造函数,构造函数首字母大写。

10.混合写法:构造函数放属性,原型放方法。

11.alert(typeof Date);     弹出function      因为Date是构造函数


本文转载自:http://www.cnblogs.com/ggbd-lie/archive/2012/11/21/2780394.html

共有 人打赏支持
老鸟的空间
粉丝 7
博文 78
码字总数 6225
作品 0
海淀
程序员
JavaScript入门(六)

对象 对象是我们使用JavaScript的核心。JavaScript中的对象在许多方面和编程外的现实世界中的对象是相似的(它并不存在,我只是做个设想)。在现实的世界中,一个对象就是一个“事物”(许多...

晨曦之光
2012/03/09
0
0
此生无悔入 TypeScript

↑ 编者按:本文由phodal公众号授权奇舞周刊转载。 想来,我已经用 TypeScript 已经有一段时间了,它可以算得上是前端领域的一门 “平淡生活” 的语言。 平淡生活,我的意思是:生活可以从此...

奇舞周刊
04/26
0
0
Cocos2d-JS中JavaScript继承

JavaScript语言本身没有提供类,没有其它语言的类继承机制,它的继承是通过对象的原型实现的,但这不能满足Cocos2d-JS引擎的要求。由于Cocos2d-JS引擎是从Cocos2d-x演变而来的,在Cocos2d-J...

智捷课堂
2015/03/17
0
0
学习 Kity 笔记(一) Class 支持

(此文已经过时, 会重新回顾学习并写新文, 2015-12-03 注释) Kity 是百度前端小组开发的 SVG 矢量图形库. 下载了 kity, 以及 grunt, seajs, 尝试用 grunt 构建发生错误: Fatal error: Module...

刘军兴
2015/11/12
0
0
Ext JS - Hello World

WELCOME TO EXT JS 这个向导提供了一个基本的Ext JS介绍。我们将会以一个非常简单的“hello world”例子来展开讨论。我们将以code是如何在Ext JS中组织的来开始。这个向导同时也包含了许多其...

Big_BoBo
2014/06/05
0
0
Nodejs系列文章之:javascript代码进阶篇

作者: RobanLee (Code maker, PHP,JS,NODEJS,PYTHON, blog:http://my.oschina.net/robanlee) javascript & nodejs 一些进阶知识: 1. 如何快速进行string => int 的转换? 大家一般首先想到的就......

_dedecms
2014/05/07
0
2
js面向对象的一些初级知识总结~~

javascript作为一门解释性脚本语言,有着其独特的魅力.既具有函数编程的特性,又具有面向对象的特征.以前的开发中,大多是使用了javascript的函数式编程,最近,发现其的面向对象也有一定的优势,...

乔康007
2013/02/24
0
0
[Javascript]继承机制的设计思想

作者: 阮一峰 日期: 2011年6月 5日 我一直很难理解Javascript语言的继承机制。 它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(...

亭子happy
2012/09/29
0
3
细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed...

开元中国2015
2015/07/13
0
0
PHP学习路线图 最全PHP自学指南

对于广大零基础的PHP自学者,往往不知道如何系统的学习PHP,导致平白浪费了很多时间。本文将为大家带来最详细的php学习路线图,同时还会附上相应的权威教程,让广大PHP自学者少走许多弯路。 ...

W3Cschool小编
04/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
9
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
4
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
175
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0
开发技术瓶颈期,如何突破

前言 读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法...

_小迷糊
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部