JS new 运算符

Posted JackAfan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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运算符把工厂模式简单化了!
    }
}

 

以上是关于JS new 运算符的主要内容,如果未能解决你的问题,请参考以下文章

JS使用new操作符创建对象的方法分析

JS new 运算符

JS原型链--new运算符的原理

JS 操作符优先级及new

怎么让js中date进行加减运算

js中new的本质