js面向对象 下

// 声明对象的方法 一  (通过常量直接赋值)

        var xiaoming = {//声明一个对象(直接通过一个常量xiaoming用{}赋值的方式声明)
            name: '小明',  //对象的一个属性   属性与属性之间用,逗号分隔。
            age: 40,   //对象的一个属性
            sex: '男',  //对象的一个属性
            job: function(){//对象的一个方法
                alert('小明很会演戏');
                return '对象方法返回值';
            }
        }
        alert(xiaoming.name);
        // xiaoming.job();//调用小明对象的方法  结果:小明很会演戏
        alert(xiaoming.job());//对象方法返回值  结果: 对象方法返回值
        //调用的如果是对象的方法属性后面要加()

 //声明对象的方法 二  ( 通过new Object() 声明)

        var xiaoming = new Object();//另一种声明 一个对象的方法
        xiaoming.name = '小明'; //此种方法用.属性 = 属性值。来表示一个 对象的属性
        xiaoming.age = 40; //声明xiaoming对象的一个属性
        xiaoming.sex = '男'; //声明xiaoming对象的一个属性
        xiaoming.job = function(){ //声明xiaoming对象的一个方法
            alert('小明很会演戏');
        }


        alert(xiaoming.name);//调用 xiaoming 这个对象的一个属性。  结果:小明
        xiaoming.job()//调用 xiaoming 这个  对象的方法      结果:小明很会演戏

 //声明对象的方法  三  ( 通过 Object() 声明 省略了new)

        var xiaoming = Object(); //第三种声明一个对象 xiaoming 的方式。
        xiaoming.name = '小明'; //声明xiaoming对象的一个属性
        xiaoming.age = 40; //声明xiaoming对象的一个属性
        xiaoming.sex = '男'; //声明xiaoming对象的一个属性
        xiaoming.job = function(){// 声明xiaoming 对象的一个方法(功能)
            alert('小明很会演戏');
        }

        alert(xiaoming.age); //40  调用xiaoming对象的 一个属性  结果:40
        xiaoming.job();  //调用xiaoming 这个对象的 一个方法(功能) 结果:小明很会演戏

//补充     .属性  完全等价于 ['属性']

        var xiaoming = Object();
        xiaoming['name'] = '小明';  
        xiaoming['age'] = 40; //xiaoming["age"]与xiaoming.age 效果一样 都是表示 对象的属性,只不过是两种写法而已。
        xiaoming['sex'] = '男'
        xiaoming['job'] = function(){
            alert('小明很会演戏');
        }

        alert(xiaoming['age']);// 40
        xiaoming['job'](); // 小明很会演戏

总结:对象(既能够存储数据,又能够存储函数)

面向对象编程示例:

/* 例子:
    有一辆车60km/h,有一条路1000km,问车跑在路上,多久跑完?
*/

            // 面向过程编程思想:只关心数学逻辑。
            var hour = 1000 / 60;
            alert(hour); //16.666666666666668


面向对象的编程思想:将生活逻辑,直接映射到我们的程序中。 1、找实体 车 属性: speed 60km/h 功能: 跑在路上 路 属性: length 1000km 让车跑在路上,跑完以后,告诉我结果。 2、分析实体的属性和功能 3、让实体之间相互作用,最终得出结果。


            var car = { //声明一个  car 对象
                speed: 60, //声明 car 对象的一个属性speed  速度60
                run: function(road){ //声明 car 对象的一个方法(功能),能以60的数度跑在路上
                    return road.length / car.speed;// 方法的返回值是消耗的的时间
                }
            }

            var kuahaidaqiao = {//跨海大桥(假设路是跨海大桥)
                length: 1000
            }

            //car对象和kuahaidaqiao对象相互作用(车跑在跨海大桥上)
            var hour = car.run(kuahaidaqiao);/*调用car对象的run方法作用在对象kuahaidaqiao上。 此时 car对象的 run方法 的形参 road 就等于对象 kuahaidaqiao 所
       以 road.length属性就等于kuahaidaqiao.length属性*/
            alert(hour);//16.666666666666668
可见这中编程方式语义化很强。






原文地址:https://www.cnblogs.com/taohuaya/p/9556700.html