js面对对象

100 阅读1分钟

1、JS面向对象构造函数

 function Person(){
        this.name = '张三'
        this.fn = function (){
            document.write(this.name)
        }
    }
    /* new 先创造了一个是实例化对象 并且把this给了实例化对象per1 */
    /* 也就是把属性和方法给了per1 */
    let per1 = new Person();
    console.log(per1);

2、工厂模式

  function gc(name,age){
        let obj = new Date();
        obj.name = name;
        obj.age = age;
        obj.eat = function (){
            document.write(`${obj.name} 年纪${obj.age} 会吃饭`);
        }
        return obj;
    }
    let p1 = gc('张胜男1',30);
    let p2 = gc('张胜男2',30);
    let p3 = gc('张胜男3',30);
    p1.eat();
    /* 工厂函数看不清里面对象的类型 */
    /* 多次调用会重复的new一个对象 开辟一个内存 不利于性能 */
    document.write( p1.getHours() );
    
    
     /* 写一个构造函数 Car 有属性color price 有方法 run 打印出 什么颜色 什么价格 会跑 */
    /* 通过new一个实例化对象的方式 实现 */
    function Car(color,price){
        this.color = color;
        this.price = price;
        this.run = function (){
            document.write(`${color} ${price} 会跑`);
        }
    }
    let car1 = new Car('红色','100w')
    let car2 = new Car('白色','200w')
    let car3 = new Car('黄色','300w')
    car1.run();
    car2.run();
    car3.run();

3、 const的用法

4、栈内存和堆内存

**

\