Javascript面向
一、前言
面向对象:专注于由哪一个对象来解决这个问题,编程特点是出现了一个类,从类中拿到对象,由这个对象去解决具体问题。
对于调用者来说,面向过程需要调用者自己去实现各种函数。而面向对象,只需要告诉调用者,对象中具体方法的功能,而不需要调用者了解方法中的实现细节。
二、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面向的更多相关文章
- 前端常用的库和实用技术之JavaScript面向切面编程
Aspect Oriented Programming(AOP)面向切面编程是一个比较热门的话题. AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程 中的某个步骤或阶段,以 ...
- javascript面向切面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- javascript 面向过程和面向对象
面向过程 思维方式:把解决问题的关注点,放到解决问题的每一个详细步骤上面. 面向对象 思维方式:把解决问题的关注点,放到解决问题需要的一些对象身上. 创建对象: 对象字面量 使用内置构造对象 封装简单 ...
- JavaScript学习总结(九)——Javascript面向(基于)对象编程
一.澄清概念 1.JS中"基于对象=面向对象" 2.JS中没有类(Class),但是它取了一个新的名字叫“原型对象”,因此"类=原型对象" 二.类(原型对象)和 ...
- JavaScript面向切面编程入门
来源极客网学习视频 关键词Javascript AOP编程 例子1: function test() { alert(2); } //理解,所谓的传入一个"回调",该怎样设计bef ...
- javaScript面向对像
1.创建对象 <script type="text/javascript"> function Flower(name,addre) { this.name=name; ...
- JavaScript学习总结(5)——Javascript面向(基于)对象编程
一.澄清概念 1.JS中"基于对象=面向对象" 2.JS中没有类(Class),但是它取了一个新的名字叫"原型对象",因此"类=原型对象" ...
- javascript设计模式与开发实践
1. js面向对象6种形式(详情) <!DOCTYPE html> <html> <head lang="en"> <meta chars ...
- 深入理解javascript中实现面向对象编程方法
介绍Javascript中面向对象编程思想之前,需要对以下几个概念有了解: 1. 浅拷贝和深拷贝:程序在运行过程中使用的变量有在栈上的变量和在堆上的变量,在对象或者变量的赋值操作过程中,大多数情况先是 ...
随机推荐
- linux 升级 5.0.2内核
1.下载 wet https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.2.tar.xz -o /usr/src/ cd /usr/src ta ...
- Selenium-Css Selector使用方法
什么是Css Selector? Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector的练习建议大家安装火狐浏览器后,下载插件,FireFinder 或 ...
- Java和C#基本类库的区别
java.lang java .net Boolean System.Boolean Byte System. Byte Character System.Char Class System.Type ...
- REST-framework快速构建API--认证
一.API使用流程 使用过API的同学都知道,我们不可能任意调用人家的API,因为通过API可以获取很多关键数据,而且这个API可能供多个部门或个人使用,所以必须是经过授权的用户才能调用. API的使 ...
- Flutter - 创建侧滑菜单(不使用navigatior,仅改变content)
之前写过一篇文章,Flutter - 创建横跨所有页面的侧滑菜单.这个里面中使用了Navigator.of(context).push来导航到新的页面. 这次介绍一种不使用导航,仅仅改变content ...
- BaseProxy:异步http/https中间人
BaseProxy 异步http/https代理,可拦截并修改报文,可以作为中间人工具.仅支持py3.5+.项目地址:BaseProxy. 意义 BaseProxy项目的本意是为了使HTTP/HTTP ...
- 记录:TensorFlow 中的 padding 方式
TensorFlow 中卷积操作和池化操作中都有一个参数 padding,其可选值有 ['VALID', 'SAME']. 在 TensorFlow 文档中只是给出了输出张量的维度计算方式,但是并没有 ...
- python 游戏(数字推理游戏Bagels)
1.游戏思路和流程图 实现功能:玩家猜测三位不一样的数字,猜错了有提示,提示分别为(位置错误数字正确),(位置和数字正确),(数字和位置都不正确) 游戏流程图 2. 使用模块和游戏提示 import ...
- webpack4-用之初体验,一起敲它十一遍
众所周知,webpack进入第4个大版本已经有2个月的时间了,而且webpack团队升级更新的速度也是非常的惊人 在写下如下内容的时候webpack已经出到了4.6的版本了,剑指5.0应该是指日可待了 ...
- 团队项目M1展示成绩和Week 10分数
根据M1项目评审的分数,分档打分得到的M1项目成绩.