一、前言

  面向对象:专注于由哪一个对象来解决这个问题,编程特点是出现了一个类,从类中拿到对象,由这个对象去解决具体问题。
       对于调用者来说,面向过程需要调用者自己去实现各种函数。而面向对象,只需要告诉调用者,对象中具体方法的功能,而不需要调用者了解方法中的实现细节。

二、Javascript面向对象

  2.1 定义类  

//定义

function 类名(形参){

    this.属性 = 形参;
} // 创建对象 var 对象名 = new 类名(实参)

  事例:

//类

function Foo(n){

    this.name = n;
} // 对象 var obj =new Foo('bigberg'); obj.name;

  注:this 代指对象(类似python中的self)  

    创建对象  new + 类名(参数)

三、Javascript的原型

  3.1 javacript中的方法调用

  事例:  

function Foo(name){
this.name = name;
this.sayName = function(){
console.log(this.name);
}
}
//创建obj1
var obj1 = new Foo("bigberg");
obj1.sayName()
//创建obj2
var obj2 = new Foo("eric");
obj2.sayName()

  这样有一个问题,方法就不能共享了,js是在每个对象里面都保存了一份,所以这样很占内存的。在python中,方法都是保存在类中的,对象中只保存属性,当对象调用方法时,是去类中调用同一个方法,这样就不会重复创建。

//python

class Person(object):

    def __init__(self,name):
self.name = name def eat(self):
print("%s like eatting beaf. " %(self.name)) obj = Person('bigberg')
obj.eat()

  

  3.2 JavaScript的原型

  对象调用方法时,自动去找它这个类,然后通过这个类的原型里面再去找对应的方法  

function Foo(name){
this.name = name;
}
//创建Foo的原型
Foo.prototype = {
'sayName' : function(){
console.log(this.name);
}
}; var obj = new Foo("bigberg");
obj.sayName(); //调原型中的sayName方法

  利用类的原型去调用类中公用的方法

Javascript面向的更多相关文章

  1. 前端常用的库和实用技术之JavaScript面向切面编程

    Aspect Oriented Programming(AOP)面向切面编程是一个比较热门的话题. AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程 中的某个步骤或阶段,以 ...

  2. javascript面向切面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. javascript 面向过程和面向对象

    面向过程 思维方式:把解决问题的关注点,放到解决问题的每一个详细步骤上面. 面向对象 思维方式:把解决问题的关注点,放到解决问题需要的一些对象身上. 创建对象: 对象字面量 使用内置构造对象 封装简单 ...

  4. JavaScript学习总结(九)——Javascript面向(基于)对象编程

    一.澄清概念 1.JS中"基于对象=面向对象" 2.JS中没有类(Class),但是它取了一个新的名字叫“原型对象”,因此"类=原型对象" 二.类(原型对象)和 ...

  5. JavaScript面向切面编程入门

    来源极客网学习视频 关键词Javascript AOP编程 例子1: function test() { alert(2); } //理解,所谓的传入一个"回调",该怎样设计bef ...

  6. javaScript面向对像

    1.创建对象 <script type="text/javascript"> function Flower(name,addre) { this.name=name; ...

  7. JavaScript学习总结(5)——Javascript面向(基于)对象编程

    一.澄清概念 1.JS中"基于对象=面向对象" 2.JS中没有类(Class),但是它取了一个新的名字叫"原型对象",因此"类=原型对象" ...

  8. javascript设计模式与开发实践

    1. js面向对象6种形式(详情) <!DOCTYPE html> <html> <head lang="en"> <meta chars ...

  9. 深入理解javascript中实现面向对象编程方法

    介绍Javascript中面向对象编程思想之前,需要对以下几个概念有了解: 1. 浅拷贝和深拷贝:程序在运行过程中使用的变量有在栈上的变量和在堆上的变量,在对象或者变量的赋值操作过程中,大多数情况先是 ...

随机推荐

  1. C语言如何向系统接要存

    C语言如何向系统接要存,就有这么三种方式: 1.向栈要. 2.向堆要. 3.向数据段要. 这一下就扯出了三种内存空间,内存空间的本质是一样的,一个地址对应一个方框,方框里可以放数据.但是为了更好的去 ...

  2. ASP.NET Core分布式项目实战-目录

    前言 今年是2018年,发现已经有4年没有写博客了,在这4年的时光里,接触了很多的.NET技术,自己的技术也得到很大的进步.在这段时光里面很感谢张队长以及其他开发者一直对.NET Core开源社区做出 ...

  3. stl源码剖析 详细学习笔记 算法(2)

    //---------------------------15/03/29---------------------------- //****************************set相 ...

  4. .NET Core容器化开发系列(一)——Docker里面跑个.NET Core

    前言 博客园中已经有很多如何在Docker里面运行ASP.NET Core的介绍了.本篇主要介绍一些细节,帮助初学的朋友更加深入地理解如何在Docker中运行ASP.NET Core. 安装Docke ...

  5. gulp.src()内部实现探究

    写在前面 本来是想写个如何编写gulp插件的科普文的,突然探究欲又发作了,于是就有了这篇东西...翻了下源码看了下gulp.src()的实现,不禁由衷感慨:肿么这么复杂... 进入正题 首先我们看下g ...

  6. HDU排序水题

    1040水题; These days, I am thinking about a question, how can I get a problem as easy as A+B? It is fa ...

  7. #个人博客作业Week1----关于软件和软件工程的出现

    1.软件工程这个词如何出现的? 数学与电脑科学先锋Margaret Hamilton在开发阿波罗11号软件的期间发明的,目的是将软件与硬件还有其他工程学类做出区别,为软件以及那些发明者争取应有的正统性 ...

  8. 20170831 php

    今天开始学习php 发现这个网站教程感觉入门很轻松 http://www.php.cn/code/25.html 配置环境遇到了端口占用的问题 解决方案: http://www.weekdian.co ...

  9. 对于beta发布的评论

    第一组:新蜂小组 题目:俄罗斯方块 评论:主体功能已经完成,可以流畅的进行游戏,看项目的完成度是最高的.他们不但把核心功能做出来了,界面也已基本完成. 第二组:Nice团队 题目:约跑APP(约吧) ...

  10. OneZero第二周第五次站立会议(2016.4.1)

    会议时间:2016年4月1日 会议成员:冉华,张敏,夏一鸣.(王请假). 会议目的:汇报前一天工作,会议成员评论. 会议内容: 1.前端,由夏,张负责汇报,完成前端功能,待命. 2.数据逻辑控制,由王 ...