javascript对象模型

javascript有几个非常重要的概念,很多人都忽略了,导致了很多后续的问题.

javascript有五个原始类型:Undefined,NULL,Boolean,Number,String.由于这些原始类型占据的空间是固定的,所以它们存储在较小的内存区域--栈中,如果一个值是引用类型的,那么它的存储空间将从堆中分配.

javascript中的对象全是引用类型

var o= new Object()

o是一个引用,也是一个对象

javascript中的函数对象也全是引用类型

 

javascript的对象模型用得最广的是混合的构造函数/原型方法,例:

function Car(sColor, iDoors, iMpg) {
    this.color = sColor;
    this.doors = iDoors;
    this.mpg = iMpg;
    this.drivers = new Array("Mike", "Sue");
}

Car.prototype.showColor = function () {
    alert(this.color);
};

var oCar1 = new Car("red", 4, 23);
var oCar2 = new Car("blue", 3, 25);

oCar1.drivers.push("Matt");

alert(oCar1.drivers);    //outputs "Mike,Sue,Matt"
alert(oCar2.drivers);    //outputs "Mike,Sue"

上例就是一个混合的构造函数/原型方式,每个new出来的对象都拥有自己的属性,但每个对象都指向相同的函数showColor,showColor被每个对象共享(它使用了原型,而属性没使用原型,如果属性也使用原型,它们也将被所有对象共享,修改任何一个对象的属性都将影响到其它对象的属性被修改).

创建javascript对象有好几种方法,但这种方法是最优的,强烈建议使用这种方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值