JS new 运算符

你。 提交于 2020-02-24 04:56:56

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运算符把工厂模式简单化了!
    }
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!