js的this

这篇博客探讨了JavaScript中this关键字的用法,它根据函数调用的不同方式指向不同的对象。当以函数形式调用时,this为全局对象(在浏览器中是window),而作为对象方法调用时,this指向调用该方法的对象。文中还通过示例展示了如何在函数中访问对象的属性,并讨论了工厂方法创建对象时this的行为。此外,还展示了如何通过对象的方法实现不同对象共享相同函数但能访问各自属性的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

41.0 JavaScript this

    解析器在调用函数每次都会向函数内部传递一个隐含的参数

    这个隐含的参数就是this,this指向的是一个对象

    这个对象我们称为函数执行的上下文对象

    根据函数调用方式不同this会指向不同的对象

        总结this

        1.以函数的形式调用时this永远都是window

        2.以方法的形式调用是this就是调用方法的那个对象

    function fun(a,b){形参

        console.log("a="+a+", b="+b);

        console.log(this);

    }

    fun(12,34);实参

    

    function sayHello(){

        console.log(this);

    }

    sayHello();

    var obj={

        name:"zhangsan",

        sayWord:sayHello

    };

obj.sayWord();函数以方法的形式被调用时this指向的是调用方法的对象

var name="全部作用域中的变量name";

    function fun(){

        console.log(this.name);

    }

    var obja={

        name:"zhangsan",

        sayWord:fun

    };

    var objb={

        name:"wangwu",

        sayWord:fun

    };

    fun();

    我希望调用fun方法的时候他可以输出对象的name属性

    obja.sayWord();

objb.sayWord();

var obj1={

        name:"小明",

        age:23,

        gender:"",

        sayhello:function(){

            console.log("大家好!我是"+this.name);

        }

    };

    obj.sayhello();

    var obj2={

        name:"小红",

        age:23,

        gender:"",

        sayhello:function(){

            console.log("大家好!我是"+this.name);

        }

    };

    var obj3={

        name:"小蓝",

        age:23,

        gender:"",

        sayhello:function(){

            console.log("大家好!我是"+this.name);

        }

    };

    

    使用工厂方法创建对象

        通过该方法可以大批量的创建对象

    

    function creatPerson(name,age,gengder){

        var obj=new Object();

        obj.name=name;

        obj.age=age;

        obj.gender=gengder;

        obj.sayhello=function(){

            console.log("大家好!我是"+this.name);

        }

        return obj;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值