javaScript 函数

查看:82
本文介绍了javaScript 函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

function Foo(){
            getName = function(){
                console.log(1);
            };
           return this;
        }

        var getName = function (){ 
            console.log(4)
        };



          Foo().getName(); 

上面的代码为什么输出的是1;

foo()运行之后输出了this,这个this是window对象,foo()中的getName是不是也就成了全局下的函数表达式;而下面的var getName也是一个函数表达式;为什么打印结果是1;

foo,执行后它等同于于下面这个代码么?

getName = function(){
            console.log(1);
        };

        var getName = function (){ 
            console.log(4)
        };



          getName(); //4

解决方案

没调用Foo的时候

window.getName = function(){
    console.log(4);
}

调用Foo()的时候

getName = function(){
                console.log(1);
            };
// 相当于更改了 window.getName

调用后Foo里面的return this的确指向window,所以最后结果是1.

这篇关于javaScript 函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆