js对象是什么?如何理解js对象

js中所有事物都是对象,例如:日期,字符串,数字,数组,布尔,函数等。

对象都有属性和方法(比如车就就是一个对象,车有颜色、价格、重量等属性)。

1.访问对象属性和方法  

访问对象:objectName.propertyName  访问方法:objectName.mathodName()

2.对象作用域:关键字this的使用(重要)

this总是指向调用该方法的对象,

使用this可以在多个地方重用一个函数

例如:

var oCar=new Object;
oCar.color="red";
oCar.myColor=myColor;

var oCar1=new Object;
oCar1.color="yellow";
oCar1.myColor=myColor;

function myColor()
{
 alert(this.color);
}

oCar.myColor();
oCar1.myColor();

/*其中this是指oCar这个对象*/

3、定义类和对象

工厂方式:

function createCar(){
    var car = new Object;
    car.color="blue";
    car.name="bm";
    car.door=4;
    car.showColor=function(){

        alert(this.color);
    };

   return car;
}
var car1 = createCar();/*创建了一个新的car1*/
var car2 = createCar();/*创建了一个新的car2*,并且car1和car2的属性完全一样/
car1.showColor();  
car2.showColor();

4、传递函数值(传递参数)

   function createCar(pColor,pName,pDoor)
   {
     var car=new Object;
          car.color=pColor;
          car.name=pName;
          car.door=pDoor;
          car.showColor=function(){
              alert(this.color);
        }
       return car;
}
   var car1=createCar("blue","bm",4);
   var car2=createCar("yellow","db",45);
   car1.showColor();
   car2.showColor();
5、混合构造函数与原型方式

 

function Car(pColor,pName,pDoor)
{
    this.color=pColor;
    this.name=pName;
    this.door=pDoor;
    this.drivers=new Array("Make","John");

}
   Car.prototype.showColor=function(){
      alert(this.color);
    };
   var Car1=new Car("blue","bm",4);
   var Car2=new Car("red","db",4);

   Car1.drivers.push("Take");//给driver数组增加Take值
   alert(Car1.drivers);
   alert(Car2.drivers);

 

6、动态原型方法

function Car(pColor,pName,pDoor){
    this.color=pColor;
    this.name=pName;
    this.door=pDoor;
    this.drivers=new Array("Bill","Mike");

}
if(typeof Car._initialized=="undefined") {
  Car.prototype.showColor=function(){
      alert(this.color);
 };
    Car._initialized=true;
}
var Car1=new Car("blue","bm",4);
var Car2=new Car("red","db",3);
alert(Car1.drivers);
alert(Car2.drivers);

 

 

 

  • 0
    点赞
  • 4
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值