当前位置: 首页 > 编程笔记 >

js类定义函数时用prototype与不用的区别示例介绍

龙景澄
2023-03-14
本文向大家介绍js类定义函数时用prototype与不用的区别示例介绍,包括了js类定义函数时用prototype与不用的区别示例介绍的使用技巧和注意事项,需要的朋友参考一下
一直在使用js编写自以为是面向对象的方法,遇到一个问题,就是定义一个方法,如下:
 
function ListCommon2(first,second,third) 
{ 
this.First=function () 
{ 
alert("first do"+first); 
} 
} 
ListCommon2.do1=function(first) 
{ 
// this.First(); 
alert("first do"+first); 
} 
ListCommon2.prototype.do2=function(first) 
{ 
// this.First(); 
alert("first do"+first); 
} 

两种方法到底有什么区别呢?用不用prototype有什么作用呢?
测试代码:
 
var t1=new ListCommon2("烧水1","泡茶1","喝1"); 
// t1.do1();//调用出错 
ListCommon2.do1("烧水1"); 
var t2=new ListCommon2("烧水2","泡茶2","喝2"); 
t2.do2("烧水2");// 
// ListCommon2.do2("烧水1");//调用出错 

经过测试发现,没有使用prototype的方法相当于类的静态方法,因此可以这样调用,ListCommon2.do1("烧水1");,如果这样调用就会出错,t1.do1();
相反,使用prototype的方法相当于类的实例方法,不许new后才能使用,ListCommon2.do2("烧水1");这样就会出错
结论,使用 prototype定义的方法相当于类的实例方法,必须new后才能使用,函数中可以调用函数的限制也会类的实例方法的限制有些类似
使用 不使用prototype定义的方法相当于类的静态方法,可以直接使用,不需要new,,函数中可以调用函数的限制也会类的静态方法法的限制有些类似
例如不能调用this.First();
 类似资料:
  • 本文向大家介绍JS构造函数与原型prototype的区别介绍,包括了JS构造函数与原型prototype的区别介绍的使用技巧和注意事项,需要的朋友参考一下 构造函数方法很好用,但是存在一个浪费内存 通过原型法分配的函数是所有对象共享的. 通过原型法分配的属性是独立.-----如果你不修改属性,他们是共享 如果我们希望所有的对象使用同一一个函数,最好使用原型法添加函数,这样比较节省内存. 例子: /

  • 本文向大家介绍JS函数基本定义与用法示例,包括了JS函数基本定义与用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS函数基本定义与用法。分享给大家供大家参考,具体如下: 运行结果: 函数调用时,没有参数限制,定义函数时,即使调用了参数个数不足,也不会报错,因为参数默认为undefined类型。 上面的三种函数的定义方法虽然不同,但是其对应的底层思想是相同的,其都相当于一个变量封装

  • 本文向大家介绍DataSet与DataTable的区别示例介绍,包括了DataSet与DataTable的区别示例介绍的使用技巧和注意事项,需要的朋友参考一下 DataSet:数据集。一般包含多个DataTable,用的时候,dataset["表名"]得到DataTable DataTable:数据表。 一: SqlDataAdapter da=new SqlDataAdapter(cmd); D

  • 本文向大家介绍$("").click与onclick的区别示例介绍,包括了$("").click与onclick的区别示例介绍的使用技巧和注意事项,需要的朋友参考一下 Html代码 区别: 1.onclick是绑定事件,告诉浏览器在鼠标点击时候要做什么 click本身是方法作用是触发onclick事件,只要执行了元素的click()方法,就会触发onclick事件。如上诉代码所示,当点击'ee'按

  • 本文向大家介绍JS几个常用的函数和对象定义与用法示例,包括了JS几个常用的函数和对象定义与用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS几个常用的函数和对象定义与用法。分享给大家供大家参考,具体如下: 仅仅是几个基本的函数,有看还是api. 感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/Htm

  • 本文向大家介绍浅谈js函数的多种定义方法与区别,包括了浅谈js函数的多种定义方法与区别的使用技巧和注意事项,需要的朋友参考一下 定义一个函数一般有如下三种方式: 1.函数关键字(function)语句: 2.函数字面量(Function Literals): var fnMethodName = function(x){alert(x);} 3.Function()构造函数: var fnMeth

  • 本文向大家介绍js定义类的方法示例【ES5与ES6】,包括了js定义类的方法示例【ES5与ES6】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js定义类的方法。分享给大家供大家参考,具体如下: 以下是es5标准里定义类的方法: 运行结果: 上面这样用构造函数和原型混合的方法定义类,是为了每次new新实例时可以共享方法,不用创建function新实例。所以只有函数属性放在原型对象里定义,

  • 本文向大家介绍js利用prototype调用Array的slice方法示例,包括了js利用prototype调用Array的slice方法示例的使用技巧和注意事项,需要的朋友参考一下