一些零散的js学习

推荐的创建对象方式####

方法一:混合的构造函数/原型方式
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");
}
Car.prototype.showColor = function() {
alert(this.color);
};
var oCar1 = new Car("red",4,23);
var oCar2 = new Car("blue",3,25);
方法二:动态原型方法
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");
if (typeof Car._initialized == "undefined") {
Car.prototype.showColor = function() {
alert(this.color);
};
Car._initialized = true;
}
};
这两种方式都解决了经典方式中成员方法会生成多份的问题或者新建对象的属性成员指向同一个引用对象的问题。而问题的根因在于function和object是引用类型,作为属性的object需要创建多份,而方法为节省空间在内存中应该只有一份。(说句实话--这段话还没看懂);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ECMAScript关键字 delete do else finally function in instance...
    doudou2阅读 735评论 0 0
  • 一、函数 JavaScript中的函数定义分为两种:声明式函数和赋值式函数。而且,函数的名称就是函数的内存地址,和...
    老惠的简书阅读 212评论 0 0
  • 原文 使用预定义对象只是面向对象语言的能力的一部分,它真正强大之处在于能够创建自己专用的类和对象。ECMAScri...
    josephok阅读 452评论 0 1
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,142评论 1 10
  • 满纸荒唐言,三成借皮,七成瞎编,随便看看不要在意。 ———————————————————————— 1. 谢泽翀...
    茕闷闷阅读 1,017评论 0 2