javascript 对象问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:20:28
var animal = function(){};

var a1 = new animal();

animal 是什么对象?和 a1 在内存中表现方式有很么不同?

如果你用typeof去测试的话,animal是一个function对象,而a1就是对象,也就是a1是object对象的.

在内存方面也有很大的区别,animal是不占用内存的,只有一个指针而已,只是一个定义,而a1才是对象,需要多少的内存是不打任何折扣的.你可以这样看的,animal是建立对象的一个实参,本身的存在是没有意义的,而使用上相当于使用了一个类的形式!事实上所谓的JS使用类风格编程也是使用的这种手段.如果从功用上说其是类也是可以的,但JS不是支持类的语言,也不是OOPL的.而a1可以看作是这种实例化的对象而已.

这样的问题怎么说呢,只能说是一个不支持OOP的语言中巧妙使用OOP编程风格而已.但这种最最用的形式是这样的:

document.body.onclick = btncilck;
如果你定义过一个btncilck事件后,就会替代body的click事件.但这句绝不能写成:
document.body.onclick = btncilck();
因为这样onclick只能得到btncilck的执行结果而不是替代执行.

animal 是得到function 里面的值 如果说function 反回是1 那么animal 就是1

a1 是animal的实例