JavaScript中的函数调用

本文详细介绍了JavaScript中函数的四种主要调用方式:直接调用、对象调用、使用call/apply调用及通过new操作符调用,并通过具体示例展示了不同调用方式下this指向的变化。

JavaScript中函数的调用有多种,以下是我总结的4种调用方式:

        第一种:直接调用,一般指向window对象

        第二种:对象调用,一般指向调用对象

        第三种:call/apply调用,一般指向函数运行你的作用域

        第四种:new,一般指向调用后产生的对象

        备注:放在代码段里是为了方面测试和学习

        //fun()
        //stu.fun()
        //fun.call/apply(this,参数)
        //new fun()

        //(1)直接调用
       var name = 'lpen'
        function person(name) {
            alert(this.name);
            //alert(name);
        }
        person();//指向window
       // person('joy')*/
        //(2)对象调用
        var name = 'lpen';
        var age = 27;
        var stu = {
            name:'joy',
            age:23,
            student:function () {
                alert(this.name);
                alert(this.age);
            }
        };
       stu.student();//指向stu


        //(3)call/apply
        var name = 'lpen';
        var age = 27;
        var stu = {
            name:'joy',
            age:23
        };
        function student() {
            alert(this.name);
            alert(this.age);
        }
        //student.call(stu,'lisi',22);//指向stu
        student.apply(stu,['lisi',23]);//指向stu
       // call("在其中运行函数的作用域","函数列表")
        //apply("在其中运行函数的作用域","函数数组")
        //总结:这两个方法的作用都是在特定的作用域中调用函数,实际上等于设置函数内部属性this的值

        //(4)new来调用
        function Person(name,age) {
            this.name = name;
            this.age = age;
            this.sayHello = function () {
                alert(this.name);
            }
        }
        var p1 = new Person('joy',23);
        p1.sayHello();//this指向实例p1

 

转载于:https://my.oschina.net/yj1993/blog/1490358

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值