`
sntetwt
  • 浏览: 20123 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

js 实例化对像的各种写法

 
阅读更多
/*

各种方式new实例化对象的测试比较

*/

//方式一:Public方式一,在类里面声明public方法和属性

var myClassPublicStyle1 = function(){

this.name = "supersha";

this.age = 24;

this.addAge = function(){

this.age++;

}

}

//方式二:public方式二,在类外面通过prototype来加载属性和方式

var myClassPublicStyle2 = function(){};

myClassPublicStyle2.prototype = {

name: "supersha",

age: 24,

addAge: function(){

this.age++;

}

}

//方式三:private的方式,使用私有属性和特权方法的方式

var myClassPrivate = function(){

var name = "supersha";

var age = 24;

this.addAge = function(){

age++;

return age;

}

}

//方式四:这种方式是混合模式吧,返回对象

var myClassSpecialObject = function(){

var name = "supersha";

var age = 24;

var addAge = function(){

age++;

}

return {

name: name,

age: age,

addAge: addAge

}

}

//方式五:这种方式也是混合模式吧,返回实例对象

var myClassSpecialFunction = function(){

var name = "supersha";

var age = 24;

var addAge = function(){

age++;

}

return new function(){

this.name=name;

this.age=age;

this.taddAge=addAge

}

}

 

function myTime(){

var time1;

var time2;

this.setTime1 = function(time){

time1 = time.getTime();

}

this.setTime2 = function(time){

time2 = time.getTime();

}

this.showTime = function(){

return time2-time1;

}

}

 

 var message = "";

  var aa = new myTime();

   //-----------------------------------

  message="myClassPublicStyle1() //Public方式一,在类里面声明public方法和属性 耗时\n ";

  aa.setTime1(new Date());

   for (var i = 0; i < 10000; i++) {

       var pub = new myClassPublicStyle1();

   }

    aa.setTime2(new Date());

message +=aa.showTime()+"  \n";

     //-----------------------------------

     

    //-----------------------------------

    message +="myClassPublicStyle2()// public方式二,在类外面通过prototype来加载属性和方式 耗时\n ";

  aa.setTime1(new Date());

   for (var i = 0; i < 10000; i++) {

       var pub = new myClassPublicStyle2();

   }

 aa.setTime2(new Date());

message +=aa.showTime()+"  \n";

    //-----------------------------------

 

//-----------------------------------

message +="myClassPrivate() //private的方式,使用私有属性和特权方法的方式 耗时\n ";

  aa.setTime1(new Date());

   for (var i = 0; i < 10000; i++) {

       var pri = new myClassPrivate();

   }

    aa.setTime2(new Date());

message +=aa.showTime()+"  \n";

//-----------------------------------

 

//-----------------------------------

    message +="myClassSpecialObject() //方式四:这种方式是混合模式吧,返回对象 耗时\n ";

  aa.setTime1(new Date());

   for (var i = 0; i < 10000; i++) {

       var spe = new myClassSpecialObject();

   }

aa.setTime2(new Date());

message +=aa.showTime()+"  \n";

    //-----------------------------------

    

    //-----------------------------------

    message +="myClassSpecialFunction() //这种方式也是混合模式吧,返回实例对象  耗时\n ";

  aa.setTime1(new Date());

   for (var i = 0; i < 10000; i++) {

       var spe = new myClassSpecialFunction();

   }

    aa.setTime2(new Date());

message +=aa.showTime()+"  \n";

    //-----------------------------------

    

alert(message);

 

分享到:
评论

相关推荐

    讲解JavaScript的面向对象的编程

    2. 使用IE运行context applying.html文档,然后查看源代码,注意观看怎样使用JSON来定义类并且实例化var obj对象的,与第一个例子比较,这是第二种JS的面向对象的写法,该写法出自于为适应下一代开发语言Ruby而制定...

    Vue.js中的extend绑定节点并显示的方法

    其中,在extend中的data和vue实例化对象中的data写法不一样。下面利用实例说明,操作如下: 第一步,创建一个静态页面并引入vue.js文件,并在主体元素标签中插入一个div,设置id属性,如下图所示: 第二步,在...

    CKevens#-#05-02.面向对象:类的定义和继承的几种方式1

    前言类与实例:类的声明生成实例类与继承:如何实现继承:继承的本质就是原型链继承的几种方式类的定义、实例化类的定义/类的声明方式一:用构造函数模拟类(传统写法)/

    haoyi2015#Web-1#05-02.面向对象:类的定义和继承的几种方式1

    前言类与实例:类的声明生成实例类与继承:如何实现继承:继承的本质就是原型链继承的几种方式类的定义、实例化类的定义/类的声明方式一:用构造函数模拟类(传统写法)/

    精通javascript

    1.将该实例复制到C:\Inetpub\wwwroot下; 2.选择浏览器的“工具”-“安全”-“本地Intranet”-“自定义级别”-“活动脚本”中选用“禁用”单选框 3.在浏览器中输入下述地址:http://localhost/1.2.htm • ...

    JavaScript设计模式之单体模式全面解析

    单体是一个用来划分命名空间并将一些相关的属性与方法组织在一起的对象,如果她可以被实例化的话,那她只能被实例化一次(她只能嫁一次,不能二婚)。 单体模式是javascript里面最基本但也是最有用的模式之一。 ...

    精通JavaScript

    • 1.3.js 1.3.htm使用的外部JavaScript文件 第2章(\第2章) • 2.1.htm Infinity应用 • 2.2.htm NaN与isNaN()的用法 • 2.3.htm Infinity值的用法 • 2.4.htm 转义字符的使用 ...

    浅谈jQuery构造函数分析

    在我的上一篇文章里面 阐述了jQuery的大致框架,知道了所有代码都是写在了一个自调用匿名函数里面,并且传入了window对象,源码是这样的: ...其实jQuery是面向对象js库,也有构造函数,每次调用jQuery方法是就会实例化

    VUE常用方法整理.pdf

    第二节 引包、留坑、实例化 、插值表达式{{}} 5 1. 引包 5 2. 留坑 5 3. 实例化 5 4. 插值表达式{{ }} 5 第三节 熟悉及使用常用指令 5 1. 什么是指令 5 2. 常用的指令有哪些,及怎么使用这些指令 6 第四节 阐述vue单...

    DWR.xml配置文件说明书(含源码)

    仅仅通过反射方法没有办法知道集合元素中的类型,所以上面的两个converter能将任何集合转换成相对javascript而言有意义的对象.然而没有办法将不同的集合类类型分别采用不同的转换方法.因为没有办法完全自动进行转换,...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--内容提供者之短信的序列化对象读写 |--内容提供者之短信的获取与写入 |--内容提供者之联系人读写与批量操作 |--内容提供者之获取通话记录 |--内容提供者的定义 |--写入联系人信息 |--利用FinalHttp实现多线程断点...

    基于SpringMVC annotation 的图形验证码

    // 实例化一个Random对象 Font mFont = new Font("华文宋体", Font.BOLD, 30); // 通过Font构造字体 g.setColor(getRandColor(200, 250)); // 改变图形的当前颜色为随机生成的颜色 g.fillRect(0, 0, width, ...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    面向对象的思想方法已经非常流行了,在编程语言(例如java,js)中,都运用面向对象的编程思想。在XML中,就是要将网页也作为一个对象来操作和控制,我们可以建立自己的对象和模板。与对象进行交流,如何命令对象,...

    asp.net知识库

    也谈 ASP.NET 1.1 中 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多语言支持 (一) 应用系统的多语言支持 (二) 自动...

    jQuery权威指南-源代码

    书名:jQuery权威指南(系统介绍jQuery方方面面,囊括118个实例和2个综合案例,实战性强) 作者:陶国荣 著 书号:978-7-111-32543-7 定价:59.00元 出版社:机械工业出版社华章公司 出版时间:2011年1月 编辑推荐:...

    jquery-1.1.3 效率提高800%

    $.ajax()函数需要一个参数,一个包含有键/值对的对象,用于初始化并操作请求对象。 在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?...

    ES6新特性之模块Module用法详解

    ES6的Class只是面向对象编程的语法糖,升级了ES5的构造函数的原型链继承的写法,并没有解决模块化问题。Module功能就是为了解决这个问题而提出的。 历史上,JavaScript一直没有模块(module)体系,无法将一个大程序...

    Java学习笔记-个人整理的

    {7.12}对象序列化}{117}{section.7.12} {8}多线程}{121}{chapter.8} {8.1}线程的常用属性与方法}{121}{section.8.1} {8.2}后台线程}{123}{section.8.2} {8.3}创建线程的两种方法}{123}{section.8.3} {8.4}...

    精易模块[源码] V5.15

    2、修正“目录_复制”在线程未初始化,导致对象不能创建的问题,感谢易友【@pp25729391】反馈。 3、修正“类_环境存取-&gt;读环境变量”不能读取当前进程环境变量的BUG,感谢易友【@詠不言敗】反馈。 4、修正“文本_...

Global site tag (gtag.js) - Google Analytics