首页 > Web开发 > 详细

js基础知识查漏补缺

时间:2020-05-14 10:20:16      阅读:38      评论:0      收藏:0      [点我收藏+]

变量提升的概念

                var a = 1;
                function fn() {
                    if (!a) {
                        var a = 123;
                    }
                    console.log(a);
                }
                fn();
                // -----------------------
                var a;
                function fn() {
                    if (!a) {
                        var a = 123;
                    }
                    console.log(a);
                }
                a = 1;
                fn();

变量提升是指将声明提升,而逻辑不变

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‘);
                }
                Foo.getName();
                getName();
                Foo().getName();
                getName();
                new Foo.getName();
                new Foo().getName();
                //  -----------
                // 变量提升转换
                function Foo() {
                    getName = function () {
                        console.log(‘1‘);
                    };
                    return this;
                }
                function getName() {
                    console.log(‘5‘);
                }
                var getName;
                Foo.getName = function () {
                    console.log(‘2‘);
                };
                Foo.prototype.getName = function () {
                    console.log(‘3‘);
                };
                getName = function () {
                    console.log(‘4‘);
                };
                // 执行
        Foo.getName(); // 2
        getName(); // 4
        Foo().getName(); // 1
        getName(); // 1
        new Foo.getName(); // 2
        new Foo().getName(); // 3

 

js基础知识查漏补缺

原文:https://www.cnblogs.com/tllw/p/12803806.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!