面向对象

2021-05-31  本文已影响0人  my木子
    function Foo() {
        getName = function () {
            console.log(1);
        };
        return this;
    }
    Foo.getName = function () {
        console.log(2);
    };
    Foo.prototype.getName = function () {
        console.log(3);
    };
    var getName = function () {
        console.log(4);
    };

    function getName() {
        console.log(5);
    };

    /**
    1. 变量提升
     function Foo() {
        getName = function () {
            console.log(1);
        };
        return this;
    }

    var getName;

    function getName() {
        console.log(5);
    };
     * 
    */

    Foo.getName(); // 2
    getName(); // 4   变量提升,方法覆盖
    Foo().getName(); // 1
    getName(); // 1   执行上一行代码的时候,将方法覆盖
    new Foo.getName(); // 2
    new Foo().getName(); // 3   先执行 new Foo() 实例,再执行原型上的 getName 方法
    new new Foo().getName(); // 3   运算符优先级问题
上一篇下一篇

猜你喜欢

热点阅读