在JavaScript中,我们经常要给已定义的对象添加一些方法,如下:
   function circle(w,h){
     this.width=w;
     this.height=h;
   }
   var cir = new circle(8,9);
   这时我们突然要计算cir对象的面积,怎么办呢?我们可以专门为这个对象新定义一个计算面积的方法。
   function area(){
      return this.width*this.height;
   }
   cir.area=area;
这时就可以调用cir.area()来计算面积了。
当然上面的语句也可以这样写:
   cir.area=function area(){
      return this.width*this.height;
   }
两种写法效果一样。
有时候我们需要每个对象都有area()方法,那应该怎么做呢?
这时代码如下:
   function area(){
      return this.width*this.height;
   }
   function circle(w,h){
      this.width=w;
      this.height=h;
      this.area=area;
   }
这样每个circle定义的对象就会有area()方法了。
   这样定义并不是一个最好的方式,因为这样定义会使每个对象里都area()方法,如果你定义的对象很多时,就会多占相当一部分内存。应该怎么做呢?
   在JavaScript中,定义一个对象时都会继承一个原始对象,我们可以通过给原始对象添加area()方法而不必让每个circle对象都有area()方法。我们用prototype属性来实现。如下:
   function area(){

      return this.width*this.height;
   }
   function circle(w,h){
      this.width=w;
      this.height=h;
   }
   ///使用prototype之前必须定义一个对象,这里我们定义了一个匿名对象///
   new circle()
   circle.prototype.area=area;
这样实现就不让circle对象多占内存了。
定义方法是这样,定义属性变量也是一样的道理。
  
转载:http://blog.sina.com.cn/s/blog_49cc672f010007ca.html

JavaScript中给对象添加方法的更多相关文章

  1. JavaScript中判断对象类型方法大全1

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  2. JavaScript中判断对象类型方法大全2

    在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String:复杂数据类型是Object,Object ...

  3. JavaScript中通过原型添加方法,解决数据共享问题,节省内存空间

    涉及知识点:(1)原型的引入(2)构造函数.原型对象和实例对象之间的关系(3)__proto__和prototype的理解 直接举例:在自定义构造函数创建对象时,因为创建的对象使用的不是同一个方法,所 ...

  4. JavaScript中Math对象的方法介绍

    1.比较最值方法 比较最值有两种方法,max() 和 min() 方法. 1.1 max() 方法,比较一组数值中的最大值,返回最大值. var maxnum = Math.max(12,6,43,5 ...

  5. JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...

  6. JavaScript中textRange对象使用方法总结

    TextRange对象是动态HTML(DHTML)的高级特性,使用它可以实现很多和文本有关的任务,例如搜索和选择文本.文本范围让您可以选择性的将字符.单词和句子从文档中挑选出来.TextRange对象 ...

  7. JavaScript中给对象添加函数的方式

    1. function 类名(){ this.属性: } var 对象名=new 类名(): function 函数名(){ //执行代码 } 对象名.属性名=函数名: 对象名.属性名(): func ...

  8. JavaScript中判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  9. 转 JavaScript中判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

随机推荐

  1. Spring初学之annotation实现AOP前置通知和后置通知

    实现两个整数的加减乘除,并在每个计算前后打印出日志. ArithmeticCalculator.java: package spring.aop.impl; public interface Arit ...

  2. python 2 到 3 的新手坑

    print 和 input print 我们在课程最开始的时候就讲过 print,在版本2的使用方法是: print 'this is version 2' 也可以是 print('this is v ...

  3. 计时器(C#)

    很多项目要用到计时器,我就自己包装了一个,倒计时还没加,有时间再加上吧.持续更新 using UnityEngine; using UnityEngine.UI; /// <summary> ...

  4. ubuntu更改启动顺序

    在ubuntu中修改启动配置. 启动相关grub2主要包含下面三个文件:1.   /boot/grub/grub.cfg 文件    2.   /etc/grub.d/ 文件夹   3.   /etc ...

  5. 用find命令查找最近修改过的文件

    Linux的终端上,没有windows的搜索那样好用的图形界面工具,但find命令确是很强大的. 比如按名字查找一个文件,可以用 find / -name targetfilename . 唉,如果只 ...

  6. wpf设置字体颜色渐变和字体阴影

    <StackPanel Orientation="Horizontal" Grid.Column="1" HorizontalAlignment=&quo ...

  7. java开发环境的搭建(JDK的下载安装及环境变量的配置)

    首先可以在Sun公司网站 http://java.sun.com 免费下载java se提供的JDK. 下载后再下载的文件夹下打开,双击jdk文件跟着提示进行安装,安装结束后——点击本机电脑的开始—— ...

  8. Dom节点操作常用方法

    1.访问/获取节点 document.getElementById(id); //返回对拥有指定id的第一个对象进行访问 document.getElementsByName(name); //返回带 ...

  9. npm package管理

    每个项目都包含一个package.json文件用来管理项目依赖的包以及项目相关信息. 其中比较总要的就是dependencies和devDependencies两项,分别指定了项目运行所依赖的模块.项 ...

  10. uva 10739 dp

    https://vjudge.net/problem/UVA-10739 和昨天的那个回文串几乎一样只是加了条件限制,可以随意增删以及替换. #include<iostream> #inc ...