js学习笔记3

来源:互联网 发布:mac关闭程序 编辑:程序博客网 时间:2024/05/16 13:06

7.        内置对象

*         方法:

   eval()  ://接受一个参数,即要执行的JavaScept字符串

   :eval(“alert(‘hi’)”); 相当于 alert(“hi”)

      var msg = “hello world”;

       eval(alert(msg));

*         Math对象

  Math.ceil(24.5) //  表示向上舍入函数,总是把数字向上舍入到最接近的值 outputs 25

  Math.floor(24.5)//表示向下舍入函数,总是把数字向下舍入到最接近的值 outpus 24

  Math.round(24.5)//表示标准的舍入函数,  outpus 25

*         this :指向调用该方法的对象

  var o = new Object()

  o.color = “red”;

  o.myfun = function()

{

   alert(this.color);

}

o.myfun();  //outputs red

var ocar = new Object;

 ocar.color = 'red';

 ocar.showColor = showColor;

 ocar.showColor();  //outputs ‘red’

 function showColor()

{

   alert(this.color);

   }

   showColor.name = "abce";

alert(ocar.showColor.name);  //oupputs ‘abce ‘

8.        定义类或对象

  9.1工厂方法

function showColor()

{

   alert(this.Color);

}

function createCar(iColor, iDoors, iMpg)

{

   var car = new Object();

   car.Color = iColor;

   car.iDoors = iDoors;

   car.iMpg = iMpg;

   car.showColor = showColor;

   return car

 }

var redCar = createCar('red',4,'redpicture');

var greenCar = createCar('green',4,'greenPicture');

redCar.showColor();

greenCar.showColor();

//些方法的缺点:该方法看起来不像对象的方法

2.2    构造函数方式

    function Car(sColor, iDoors, iMpg)

{

   this.color = sColor;

   this.doors = iDoors;

   this.mpg = iMpg;

   this.showColor = function(){alert(this.color)};  //将此函数也可以定义到外面

 }

 var oCar1 = new Car("red",3,4);

 var oCar2 = new Car('green',3,5);

 oCar1.showColor();

2.3    原型方式

该方式利用了对象的prototype属性,可把它看成创建对象所依赖的原型.

function Car ()

 {

 }

 Car.prototype.color = "red";

 Car.prototype.doors = 4;

 Car.prototype.mpg = 23;

 Car.prototype.showColor = showColor;

 var oCar3 = new Car();

 var oCar4 = new Car();

 oCar3.showColor();

function showColor()

{

   alert(this.color);

}

//些方式的缺点:对象创建后才能改变属性的默认值,当对象的属性指向是的对象不是函数时,则会出现多个实例共享些对象的此属性的问题 :

function car() {}

Car.prototype.color = “red”;

Car.prototype.doors = 4;

Car.prototype.drivers = new Array(“mike”,”sue”);

Car.showColor = showColor;

var oCar5 = new Car();

var oCar6 = new Car();

oCar5.drivers.push(“kite”);

alert(oCar5.drivers);//outputs mike,sue,kite

alert(oCar6.drivers);//outputs mike,sue,kite

 

2.4    混合的构造函数/原型方式常用之

//利用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方式)

function Car(sColors, iDoors, iMpg)

 {

     this.color = sColors;

        this.doors = iDoors;

        this.iMpg = iMpg;

        this.drivers = new Array("mike","sue");

 }

 Car.prototype.showColor = showColor;

function showColor()

{

   alert(this.color);

}

 var oCar1 = new Car("red",4,24);

 var oCar3 = new Car("green",4,45);

 oCar1.drivers.push("Matt");

 alert(oCar1.drivers);

 alert(oCar3.drivers);

9.5动态原型方法

实现:在构造函数内定义非函数属性,而函数属性则利用原型属性定义.

function Car(sColor, iDoors, iMpg)

 {

   this.color = sColor;

   this.doors = iDoors;

   this.mpg = iMpg;

   this.drivers = new Array("mike","sue");

   if(typeof Car._initalized == "undefined")

   {

      Car.prototype.showColor = function(){alert(this.color);};

         Car._initalized = true;

  }

  }

  var car10 = new Car("green-red",4,5);

  car10.showColor();

原创粉丝点击