WEB开发网
开发学院网页设计JavaScript JavaScript中定义类或对象 阅读

JavaScript中定义类或对象

 2009-10-25 00:00:00 来源:WEB开发网   
核心提示: 但是该函数看起来不像对象的方法,所以就有了构造函数的出现,JavaScript中定义类或对象(2),(2)构造函数方式 functionCar(sColor,iDoors){this.color=sColor;this.doors=iDoors;this.showColor=function()

但是该函数看起来不像对象的方法。所以就有了构造函数的出现。

(2)构造函数方式 

    function Car(sColor, iDoors) {
        this.color = sColor;
        this.doors = iDoors;
        this.showColor = function() {
            alert(this.color);
        };
    }
    var oCar1 = new Car("red", 4);
    var oCar2 = new Car("blue", 3);

通常构造函数的首字母要大写。

就想工厂函数一样,构造函数也会同样重复生成函数,为每个对象创建独立的函数版本。

(3)原型方式

    function Car() {
    }
    Car.prototype.color = "red";
    Car.prototype.doors = 4;
    Car.prototype.showColor = function() {
        alert(this.color);
    };
    var oCar1 = new Car();
    var oCar2 = new Car();

缺点:

原型方式的构造函数没有参数。他不能通过传参来初始化属性的值。还有,当属性指向的是对象时,还会造成对象共享。如下: 

    function Car() {
    }
    Car.prototype.color = "red";
    Car.prototype.doors = 4;
    Car.prototype.drivers = new Array("Mike", "Sue");
    Car.prototype.showColor = function() {
        alert(this.color);
    };
    var oCar1 = new Car();
    var oCar2 = new Car();
    oCar1.drivers.push("Matt");
    alert(oCar1.drivers);   //output "Mike,Sue,Matt"
    alert(oCar2.drivers);   //output "Mike,Sue,Matt"

Tags:JavaScript 定义 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接