JS new 运算符

new 运算符

{
    // new运算符都在哪些地方出现过呢?
    let str = "";
    let str1 = new String();

    let obj = {
        name:""
    }
    let obj1 = new Object();
}
{
    /*
        new运算符的特征:
            1.执行函数
            2.自动创建一个空对象
            3.把空对象和this绑定
            4.如果没有返还,隐式返还this(空对象);
    */
    {
        function test(){
            console.log("test");
        }
        // test();//使用()执行.
        new test();//使用new执行
        new test;//同时也是可以不用加括号(); 加不加根据是否需要传递参数按继续情况决定;
    }
    {
        new Test();//使用new执行的时候
        function Test(){
            // let obj = {};//自动有一个空对象 -> 等同于this

            // return this;//自动返还
        }
    }
    {
        // 工厂模式的修改:
        /* function Person(name,age,hobby){
            let obj = {};
            obj.name = name;
            obj.age = age;
            obj.hobby = function(){
                console.log(hobby)
            };
            return obj;
        } */
        function Person(name,age,hobby){
            // let obj = {};//===this
            this.name = name;
            this.age = age;
            this.hobby = function(){
                console.log(hobby)
            };
            // return obj;
        }
        let zhangsan = new Person("张三",20,"喜欢篮球");
        console.log(zhangsan);
        zhangsan.hobby();
        // 可以看到上方使用new运算符把工厂模式简单化了!
    }
}

猜你喜欢

转载自www.cnblogs.com/Afanadmin/p/12355411.html