第3章 对象基础

简介:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>定义类和对象</title>
</head>
<body>
    1.工厂方式:<br />
    <script type="text/javascript">
        //定义
        function createCar(color, doors, mpg) {
            var oCar = new Object();
            oCar.color = color;
            oCar.doors = doors;
            oCar.mpg = mpg;
            oCar.showColor = function () { alert("1.工厂方式:" + this.color); };
            return oCar;
        }
        //调用
        var car = createCar("red", 4, 23);
        car.showColor();
    </script>
 
    2.构造函数方式:<br />
    <script type="text/javascript">
        //定义
        function Car(color, doors, mpg) {
            this.color = color;
            this.doors = doors;
            this.mpg = mpg;
            this.showColor = function () { alert("2.构造函数方式:" + this.color); };
        }
        //调用
        var car2 = new Car("blue", 4, 23);
        car2.showColor();
    </script>
 
    3.原型方式:<br />
    <script type="text/javascript">
        //定义
        function pCar() { }
        pCar.prototype.color = "green";
        pCar.prototype.doors = 4;
        pCar.prototype.mpg = 23;
        pCar.prototype.showColor = function () { alert("3.原型方式测试:" + this.color); };
        //调用
        var car3 = new pCar();
        alert(car3 instanceof pCar); //允许用instanceof运算符检查给定变量指向的对象的类型。
        car3.showColor();
    </script>
 
    4.混合构造函数/原型方式:<br />
    <script type="text/javascript">
        //定义
        //构造函数定义属性
        function sCar(color, doors, mpg) {
            this.color = color;
            this.doors = doors;
            this.mpg = mpg;
        }
        //原型方式定义函数
        sCar.prototype.showColor = function () { alert("4.混合构造函数/原型方式测试:" + this.color); };
        //调用
        var car4 = new sCar("yellow", 4, 23);
        car4.showColor();
    </script>
 
    5.动态原型方式:<br />
    <script type="text/javascript">
        //定义
        function dCar(color, doors, mpg) {
            this.color = color;
            this.doors = doors;
            this.mpg = mpg;
            //将对象的方法放到对象内部,更符合面向对象思想
            if (typeof dCar._initialized == "undefined") {
                dCar.prototype.showColor = function () { alert("5.动态原型方式测试:" + this.color); };
                dCar._initialized = true;
            }
        }
        //调用
        var car5 = new dCar("black", 4, 23);
        car5.showColor();
    </script>
</body>
</html>
目录
打赏
0
0
0
0
4
分享
相关文章
使用 C# 比较两个对象是否相等的7个方法总结
比较对象是编程中的一项基本技能,在实际业务中经常碰到,比如在ERP系统中,企业的信息非常重要,每一次更新,都需要比较记录更新前后企业的信息,直接比较通常只能告诉我们它们是否指向同一个内存地址,那我们应该怎么办呢?分享 7 个方法给你!
|
5月前
|
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
这篇文章详细地介绍了Java对象的创建过程、内存布局、对象头的MarkWord、对象的定位方式以及对象的分配策略,并深入探讨了happens-before原则以确保多线程环境下的正确同步。
93 0
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
|
10月前
|
C++建造者模式解析:构建复杂对象的优雅方式
C++建造者模式解析:构建复杂对象的优雅方式
86 1
C++建造者模式解析:构建复杂对象的优雅方式
C++ 基础篇之类 & 对象的关系
C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等