js面向对象:
类?什么是类?类是一些具有相同特征的对象的集合
什么是对象?就是具体到某一个事物了,都可以叫做对象
类,通过function定义类,在js里类的本质是函数
类和函数天生有两个属性,一个是prototype,一个是__proto__
prototype又是一个对象天生就有一个constructor的属性,属性值是函数和类本身
普通对象天生有一个__proto__的属性,这个属性是对象,指向它的父类
什么是原型链?原型链就是操作obj.属性的时候,首先看这个属性是私有的还是公有的,私有的有就直接使用,私有没有的话就看公有的,公有的有就使用,没有就通过__proto__向父类的原型上查找,有就使用,没有就继续向上查找,知道基类object为止。
引用关系:
上图两者的区别:
前者不会改变原有的引用关系,而后者会改变原有的引用关系
php面向对象:
类的创建,通过class创建类
创建对象需要使用new关键字
类 成员的添加与访问:
类成员有属性,方法和常量
添加属性需要使用范围修饰符:
1、public :类外,类内,子类都可以访问
2、protected:在类内和子类内访问
3、private:只能在自己的类内访问
访问属性的时候变量名不带$符
添加方法,如果方法前不带修饰符,则默认是public
添加常量:使用关键字const,格式:
类内部对象$this和内存原理
$this他是一个对象,指向实例化的哪个对象
当我们new实例化的时候,系统会给这个对象分配一个内存空间,内存空间分一个栈内存,一个堆内存,将变量存在栈里,将代码块存在堆里,然后将堆内存地址指向栈中的变量,如果再给这个栈中的变量赋值引用数据类型,那么这个内存地址会被更改。
原文地址:https://www.cnblogs.com/wkxdd/p/10679912.html