没有虚拟机,就没有class文件,没有class文件new Array(),这又该如何解释呢?
java中创建对象的流程是:.java文件反编译成字节码文件————》class文件运行在JVM中————》new创建对象。
js与Java是不同的类型的语言,谁规定了先有class文才能有对象呢!什么是对象?
在我看来对象就是是个操作数据的单元。既然这样不一定非要有class文件。
java、c、python都有class文件,可定说明class文件有优点,优点是什么?
快,当我们编译之后,他们他是是16进制的数据,更容易被操作系统识别。
js中是怎么创建对象的?
js中有两类对象,一类是function对象,一类是Object对象。Object是真正的对象,functio对象应该是为了让程序员更好了理解,假扮成的对象,他的本质是函数编程。
var eat = function(){}.
那这样说的话,我们只谈论Object对象,不对,除了Object对象,她还有一个最重要的对象dom对象,dom对象也可以理解为是Object对象。
只不多这个对象不用我们创建,也不用我们销毁,全是有浏览器管的。
我们就研究我们自己创建的Object对象。但是这还分成两类,一类是js自带的如Date,一类是我们自己写的,如Student。
1.调用js本身就有的构造方法
var date = new Date(),这是一种采用构造方法创建的对象,注意他的数据类型是var,并不是object,但是他的数据类型是Object。
2.调用自己写的构造方法。
function Student(){
alert("我是张三");
}
var student = new Student();//注意当我们执行着一句话的时候,不单单会创建student对象,也会执行构造方法中的输出语句。另外Student(),不一定非要大写
alert(typeof student);
这一点要注意,我们js中的构造函数和java中的构造函数是不相同的,js中的构造函数既可以是构造函数也可以是普通函数,他又双重作用,但是java中的构造函数
只能创建对象。这一点主要就是js中的函数可以脱离对象,单独运行。
3.可以使用json数据声明对象。