6.1.2 对象的方法
方法其实就是通过对象调用的JanaScript函数。可以将函数赋给任何变量,甚至赋给一个对象的任何属性。在方法的主体内部,关键字this的值会变成调用该方法的对象。
函数是存储在变量中的值,而这个变量也是全局对象的一个属性。因此,当调用一个函数时,实际上调用的是全局对象的一个方法。所以,在函数和方法之间并没有技术上的差别,其差别仅在于设计和目的上:
·方法是用来对this对象进行操作的;
·函数通常是独立的,并不需要使用this对象。
使用构造函数来定义和调用方法更为简洁和方便,下面的代码演示了这种应用。
<script language="javascript"> <!-- //首先定义一些函数,它们将被作为方法使用 function RectangleArea(){return this.width*this.height;} function RectanglePerimeter(){return 2*this.width+2*this.height;} function RectangleSetsize(w,h){this.width=w;this.height=h;} function RectangleEnlarger(){this.width*=2;this.height*=2;} function RectangleShrink(){this.width/=2;this.height/=2;} //为Rectangle对象定义定义一个构造函数,初始化属性,并为方法赋值 function Rect(w,h) { //初始化对象的属性 this.width=w; this.height=h; //定义对象的方法 this.area= RectangleArea; this.Perimeter= RectanglePerimeter; this.Setsize= RectangleSetsize; this. Enlarger= RectangleEnlarger; this. Shrink= RectangleShrink; } //调用Rectangle对象的方法 var myrect=new Rect(5,6); var myarea= myrect.area(); myrect.enlarger(); var myper= myrect.perimeter(); //--> </script> |