请问javascript实例对象问题?

来源:百度知道 编辑:UC知道 时间:2024/05/09 15:23:33
请问javascript实例对象问题?

不是资深专家,半路出家,随随意意,不想钻研的,请不要乱回答!

var s=new Array()

首先,先看这个Array(),它是内置构造函数,会返回一个(object数组对象),有人说返回的是数组,不是对象,我他奶奶的郁闷了,

是不是胡说八道,你说我怎么知道Array()返回的是(object数组对象),用typeof(array())可以返回类型,ie显示的是object

所以我说Array()返回的是(object数组对象).

然后用new关键字创建(object数组对象)的实例对象,这个实例对象就是s,不知道说的对不对.

如果是自定义的函数的话,

比如function kk(){}

然后var a=new kk()

这个用new关键字创建kk()类的(对象实例a)

array()函数是看做类,kk()函数看做类,

var s=new Array()

array()先返回(object数组对象),然后new创建(object数组对象)的实例对象s

var a=new kk()

由于kk()函数没有返回对象,那么new直接创建<<kk()类>>的实例对象a

不知道俺说的对不对,请指教!

javascript不是真正的支持面向对象的,但至少面向对象编程是一种编程风格或是手段,javascript只是提供了这种编程方法的一种支持,而本身绝对不是一门OOPLs的.所以从某意义上来说它是支持面向对象,但本身不是OOPL的.这种说法本身就是对javascript找借口,因为它根本不支持面向对象中的大多概念,如类、继承、重载等重要的东西都没有!

javascript所谓的面向对象设计也只是借助与其对象和自定义对象来实现的。它所提供的引用方式类似对象的引用方式而已。其实还有归功于W3C,因为其提出的DOM模型使javascript不得已使用这种类似对象的引用方式,来兼容DOM而已。

在它的数据类型中,只有数字,字符,日期时间,null与undefined的等六种类型,很多书上就是没有提到那个所谓的对象类似,所以它把它的一种特殊类称之为Object类似。在我看来,它的日期时间也只是一个内置对象而已,不能称之为一种数据类型的。而数组类型在javascript中并不存在,之所以还称其为数组,实质上是对其功能的一种称呼而已,在javascript中严格应该其为数组对象才对。如果其内置的还有静态Math对象等等。天杀的误人子弟的教课书从来不会这么解释!事实上如果用typeof去测试类型时你还会发现var a= null;typeof(a)返回的居然是对象(object).null只能是一种常数还差不多。

千万要记着的是别在js中自然数类!只能称对象,和实例对象。关系有点像OOPLs中的类与对象的关系,但根本就不是那么一回事!

还有一种类型教课书却只字未提。就是function对象!如果你这样写一下:var a = function (){};然后再测试一下类型试试看,其结果就是function型的,而非其他!而在js中所谓的实例对象也不是那样的称呼,就以你的例子为例:

var s = new Array();s是实例对象,这个说法是错误的!但是var s = new Array(5,1,2,"0");这时s才能称为实例对象的。因为无论如何,js都不支持重载,更不能在new开创空间时执行所谓的构造函数的,因为它就没有!

1.数组