JS跟PHP的面向对象,根本就不是同一个概念。应该说js跟其他传统的面向对象语言根本都不是同一个概念。在这JS里头,对象(类)其实是基于一个原型链的方式去实现,而且许多对象功能都没有,譬如说属性。js严格来说,其实不是一个面向对象的语言。现在的那些类的功能,其实是在原生的js基础上用一些转换的方式去做的。如果你把新的es6的那些类的,用closure编译完之后,它生成的那些代码,其实是原来跟js一一对应的东西,根本不存在“类”。
相反PHP是一个真正的面向对象的语言。他能够提供一切oop所要求的基础设施。