javascript--面向对象(一)模拟类的概念

来源:互联网 发布:开淘宝店用什么软件好 编辑:程序博客网 时间:2024/06/03 07:07

1、工厂模式

        function createPerson(name,sex,age){var obj =new Object();obj.name = name;obj.sex = sex;obj.age = age;obj.sayName = function(){console.info(this.name);}return obj;}var p1 = createPerson("z3","男",20);var p2 = createPerson("l4","女",19);console.info(p1.name);console.info(p2.name);p2.sayName();

2、构造函数式    (推荐使用这个)

      //函数的第一个字母大写代表一个类function Person(name,sex,age){this.name = name;this.sex = name;this.age = age;this.sayName = function(){console.info(this.name);}}//使用new关键字 传递参数var p3 = new Person("w5","男",4);var p4 = new Person("w5","男",4);console.info(p3.name);p3.sayName();console.info(p3 ==p4);//falseconsole.info(p3.constructor == Person);//trueconsole.info(p4.constructor == Person);//true
        //判断对象是不是某个类的实例console.info(p3 instanceof Person);//trueconsole.info(p3 instanceof Object);//true
//创建对象的方式//1、当作构造函数使用var p5 = new Person("w5","男",4);//2、当作普通函数使用var p6 = Person("w5","男",4) // 这样的话 this就指向window//3、在另一个对象的作用域中调用//call、apply将函数绑定到对象上var o = new Object();Person.call(o,"梁","男",12);console.info(o.name);//梁o.sayName();//梁