js面向对象与PHP面向对象总结

js面向对象

1.什么是对象?

  对象:任何实体都是对象,拥有属性和方法两大特征

  属性:描述事物的特点;

  方法:实物拥有的行为;

2.在JS里

  Person.name="zhang"

  Person.fn=function(){}

3.js中如何去生成对象?

  (1)单例模式/字面量定义 var obj={name:"zhang"}

  (2)var obj=new Object() 内置类

      Obj.name="zhang"

      js内置的类 string array object number boolean  date function

  (3)工厂模式

      function create(){

        var obj={}

        Obj.name=

        return obj;

      }  

  (4)构造函数

      function Person(){

        this.name="li"

      }

      var zhang=new Person()

4.this的问题

    this是关键字,它是一个对象;

    函数外 this指向window;

    函数内看带不带. 带.就是.前面的对象,不带.就是window

5.原型prototype

  每个函数 类天生自带一个prototype的属性,这个属性是个对象,它里面天生自带一个constructor的属性,属性值是当前函数/类本身;

  每个实例对象 天生自带一个__proto__的属性,这个属性是对象,它指向当前实例对象的类的原型

6.类的继承

  对象复制

    (1)通过for in 将父类的所有属性变成子类的私有属性

    (2)Object.create() 将父类的属性复制成子类公有的属性

  <1>原型继承

    将父类的实例赋值给子类的原型,父类实例的所有属性成了子类的公有属性

  <2>call继承 将父类私有的继承为子类私有的

    改变this指向的方法:

    a.call() 

      fn.call(div,)将fn中的this换成div然后再把fn调用;

    b.apply()

    c.bind()

    d.提前声明;

   <3>冒充对象

      冒充对象继承利用for in  将父类的所有属性继承为子类私有的

   <4>混合继承 call继承和原型继承结合

     私有的继承为私有的,私有的和公有的再次继承为公有的

   <5>组合继承(寄生式继承)  call继承和克隆的结合

     <6>中间类继承  

      伪数组

   <7>拷贝继承

      浅拷贝

      深拷贝

        

        

PHP面向对象:

  1.类的创建 class创建类

   

  2.对象的创建  使用new关键字;

   

  3.成员的添加;

   添加成员需要三个修饰符

    public  公开的,定义公共的属性和方法,类的外部,类的内部,子类都可以使用;

    protected  受保护的,定义受保护的属性和方法 只能在类的内部和子类里使用

    private  私有的,定义私有的属性和方法,只能在自身的类里使用

    方法成员如果前面不加修饰符,默认是public;

  4.成员调用使用->符号;

    

    使用成员属性和方法的时候,属性和方法前面不带$符

    

  5.特殊对象$this指向实例化的对象,如果类的方法里想使用类的其他属性和方法得需要使用$this对象

    

  6.构造方法 function__construct()  构造函数在new实例化的时候系统会自动调用

    

  7.析构方法

   我们每次new实例化,系统就会给这个对象分配一个内存空间,如果不销毁,系统压力会很大,系统有一个析构方法 __destruct对象实例化之后系统会自动调用。内存销毁的原则是先进后销。

    

  8.成员赋值

   

  9.php中的继承使用关键字extends

   

  10.类中常量 使用const关键字定义常量,常量在定义和使用的时候不能带$符。

   使用的时候不能用$this  使用范围修饰符 :: 前面还是这个类名或self

   

   如果子类想访问父类中的常量 使用parent::常量名

   

  11.静态变量 在变量前加上关键字 static 静态属性 不能使用->访问了,使用类名::$变量名:

   

  12.重载 覆盖

   子类继承父类的方法时,如果子类有和父类同名的方法,从父类那继承的方法就会被覆盖掉,这个就叫重载;

   如果父类的方法前面加上final 则子类无法重载父类的方法,就会报错。

   

  13.调用父类的构造方法

   php不会在子类的构造方法中自动的调用父类的构造方法,要执行父类的构造方法,需要在子类的构造方法在调用parent::__construct().

 

 

面向对象三大特征

  封装:对外只告诉你如何操作,内部结构不需要你知道。

     对外只提供可操作的接口(方法),对内的数据操作不可见

    

  继承:子类可以继承父类的属性和方法,但是有限继承,public protected private 修饰的属性可以继承protected public 修饰的方法 子类可以继承,父类的常量也可以继承。

    

  多态:php没有多态,因为php是弱类型语言,不会对变量提前进行类型声明,但是有重载;

  重载:父类和子类 方法相同 子类会覆盖父类的方法。js也有重载。

 

 

 

   

 

 

   

 

转载于:https://www.cnblogs.com/yuanjingjing/p/10679389.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dubbo原理与框架设计

Dubbo是常用的开源服务治理型RPC框架&#xff0c;在之前osgi框架下不同bundle之间的方法调用时用到过。其工作原理和框架设计值得开源技术爱好者学习和研究。 一、Dubbo的工作原理 调用关系说明 服务容器负责启动&#xff0c;加载&#xff0c;运行服务提供者。服务提供者在启动…

面向全球用户的Teams app之Culture计量单位和禁忌篇

我在前一篇文章里分享了Global Ready的app时会遇到的不同文化对于数字方面的挑战。这篇我继续分享不同文化对于计量单位和禁忌方面的挑战。 我们先来看一个例子&#xff0c;假如有一个teams bot&#xff0c;它告诉你一些动物的速度&#xff0c;比如它告诉你&#xff1a; 猎豹能…

【我的Android进阶之旅】Android自定义Lint实践

背景 2017年8月份的时候&#xff0c;我在公司开始推广Lint、FindBugs等静态代码检测工具。然后发现系统自带的Lint检测的Issue不满足我们团队内部的特定需求&#xff0c;因此去自定义了部分Lint规则。这个检测运行了大半年&#xff0c;运行良好&#xff0c;团队的代码规范也有了…

存储结构与索引

一、SQL数据存储的基本介绍 数据库中的数据存储涉及页&#xff08;Page&#xff09;和区&#xff08;Extent)这两个概念了。SQL server中数据存储的基本单位是页。为数据库中的数据文件&#xff08;.mdf或.ndf&#xff09;分配的磁盘空间可以从逻辑上划分成页&#xff08;从0到…

面向全球用户的Teams app之时区篇

我在前两篇文章里分享了Global Ready的app时会遇到的不同文化的挑战。这篇我继续分享在时区方面的挑战。 时间是最复杂的&#xff0c;最容易出错的部分。时间复杂的最根本原因是时区问题。 首先&#xff0c;大家都知道&#xff0c;我们地球是圆的&#xff0c;这个意味着如果大…

Linux: Nginx proxy_pass域名解析引发的故障

背景 业务架构&#xff1a; 部署细节&#xff1a;  两容器均部署在同一机器上&#xff0c;通过 docker-compose 编排&#xff0c;并且通过link方式链接。 故障描述 在有次更新代码时&#xff0c;发现前端能够打开&#xff0c;但是所有接口请求全是502(Bad GateWay) 故障排查 …

Oracle建立全文索引详解

Oracle建立全文索引详解1.全文检索和普通检索的区别 不使用Oracle text功能&#xff0c;当然也有很多方法可以在Oracle数据库中搜索文本&#xff0c;比如INSTR函数和LIKE操作&#xff1a; SELECT *FROM mytext WHERE INSTR (thetext, Oracle) > 0; SELECT * FROM mytext WHE…

面向全球用户的Teams app之夏令时篇

我在前两篇文章里分享了Global Ready的teams app时会遇到的不同挑战。这篇我继续分享在夏令时方面的挑战。 夏令时&#xff0c;主要是为了节约能源&#xff0c;英文里通常缩写成DST(Daylight Saving Time)。一般在天亮早的夏季人为将时间调快一小时&#xff0c;可以使人早起早…

面向全球用户的Teams app之合规性篇

我在前两篇文章里分享了Global Ready的app时会遇到的不同挑战。这篇我继续分享在合规性方面的挑战。 说到合规性compliance&#xff0c;不得不说GDPR标准&#xff0c;当我们发布了一个teams app后&#xff0c;微软会要求开发人员做一个security self assessment&#xff0c;这…

行内元素中去掉文字的上下间距,使得文字所在元素的高度同字体高度一致的方法...

之前在p这类块元素中的文字&#xff0c;给line-hight1;就可以去掉文字自带的上下间距&#xff0c; 像这样&#xff1a; 最近突然发现这个方法在行内块和块元素上好使&#xff0c;可当用在span或者a这类内联元素上都不好使&#xff0c;除了转为块元素的方法来去掉上下间距&#…

VSCode的Teams插件

随着今年在线的Build大会的结束&#xff0c;又是一大波的 Teams 新功能&#xff0c;新工具&#xff0c;新SDK。我接下来几篇博客就会详细和大家一一介绍。我今天先从VSCode的插件开始。 打开VS Code&#xff0c;搜索Teams&#xff0c;就可以找到Microsoft Teams Toolkit插件&a…

使用Flow快速开发Teams小应用

继续我的上一篇博客&#xff0c;这篇继续介绍BUILD大会里的内容&#xff1a;Flow。 Flow是微软power平台的一个服务&#xff0c;通过简单的拖拽就可以完成一个业务逻辑的处理&#xff0c;现在Flow和Teams的结合十分紧密。我们来试一下。 先点击Teams左边的Flow菜单。 如果你的…

python正则中如何匹配汉字以及encode(‘utf-8’)和decode(‘utf-8’)的互转

正则表达式&#xff1a;  [\u2E80-\u9FFF]$ 匹配所有东亚区的语言   [\u4E00-\u9FFF]$ 匹配简体和繁体   [\u4E00-\u9FA5]$ 匹配简体   <input type"text" name"username" οnkeyup"valuevalue.replace([\u4E00-\u9FA5]$)"> 正则表…

【区块链】认识区块链的基本概念

2018年区块链技术风卷全球&#xff0c;似乎大家都在谈论区块链&#xff0c;那到底什么区块链&#xff0c;区块链到底能干什么&#xff0c;对普通人会有什么影响&#xff0c;很多人还是稀里糊涂&#xff0c;那么就谈谈我的一些理解吧&#xff0c;抛砖引玉欢迎探讨。 我是如何接触…

将Teams Template升级到dotnet core 3.1

为了方便开发者开发Teams应用&#xff0c;我在2018年做了dotnet c#的一套模板&#xff0c;这套模块一共有三种类型&#xff0c;一个是Teams OutgoingWebhook&#xff0c;一个是MessagingExtension&#xff0c;还有一个就是Tab。 今天特地去nuget上看了一下&#xff0c;下载量还…

【动态规划】cf1034C. Region Separation

质因数分解套路的复杂度分析的动态规划 题目大意 有一颗$n$个节点有点权的树&#xff0c;初始整棵树为$1$号区域&#xff0c;要求满足下列规则&#xff1a; 除非$i$是最后一个等级&#xff0c;否则每一个$i$级区域都要被分成至少两个$i1$级区域对于每种等级&#xff0c;每个点必…

【数据结构】线性表(一):顺序列表

线性表(linear_list)是最常用且最简单的一种数据结构&#xff0c;简言之&#xff0c;一个线性表是n个数据元素的有序序列。 例如&#xff1a;&#xff08;a1 , ... , ai-1 , ai , ai1 , ... , an)&#xff1a;ai-1 是 ai 的直接前驱&#xff0c;ai1 是 ai 的直接后驱。 并且&am…

校招需要看的书 巩固的知识

前言 感谢教练&#xff0c;学长们&#xff0c;队友&#xff0c;lollipop&#xff0c;猫哥&#xff0c;李哥&#xff0c;表哥&#xff0c;鸡哥&#xff0c;样样&#xff0c;咸糖&#xff0c;茗记&#xff0c;明沙&#xff0c;嘻&#xff0c;树佬(排名不分先后)等等太多太多的人的…

Teams Tab的Single Sign-On

在我写这篇文章的时候&#xff0c;这个SSO机制还是在 Developer Preview 阶段&#xff0c;可能在发布前还会有一些改进。不过我觉得这个功能很好&#xff0c;所以先和大家分享一下。 如果大家之前已经开发过Teams的tab应用&#xff0c;可能会发现如果你需要一个当前用户的toke…

算法引入

算法的概念&#xff1a; 解决问题的思路。 时间复杂度&#xff1a; 定义&#xff1a; 基本运算的执行数量。是算法效率的衡量的量。 计算准则&#xff1a; 基本操作&#xff1a;即只有常数项。复杂度认为1顺序&#xff0c;按照加法计算循环&#xff0c;按照乘法计算条件。按照最…