js 4种函数调用方法

来源:互联网 发布:广州sql培训班 编辑:程序博客网 时间:2024/06/03 16:55
javascript 函数调用
javascript 函数有4种调用方式
每种方式的不同方式在于this 的初始化


this 关键字
this 指向函数执行时的当前对象,this 是保留关键字,不能修改this 的值


全局对象
当函数没有被自身的对象调用时,this 的值就会变成全局对象
web 浏览器全局对象 window对象


调用方法
一、作为一个函数调用
function myFn(a, b) {
    return a + b;
}
myFn(10, 2);


二、函数作为方法调用
var myObject = {
    firstName: "huang",
    lastName: "weisheng",
    fullName: function() {
        return this.firstName + this.lastName;
    }
}
myObject.fullName();


三、使用构造函数调用
如果函数调用前使用了new 关键字,则是调用了构造函数
js函数重新创建的对象,而不是创建新的函数
构造函数中this 关键字没有任何的值
this 的值在函数调用时实例化对象(new object)时创建


function myFn(arg1, arg2){
    this.firstName = arg1;
    this.lastName = arg2;
}
var x = new myFn("huang", "weisheng");
x.firstName;


四、作为函数方法调用
在js 中,函数是对象,也有方法和属性
call() 和apply() 是预定义的函数方法,可用于函数调用,第一个参数为对象本身
call() 第二个参数开始为call 的参数
function myFn(a, b) {
    return a + b;
}
myObject = myFn.call(myObject, 10, 2);


apply() 第二个参数为数组
function myFn(a, b) {
    return a + b;
}
myArray = [10, 2];
myObject = myFn.apply(myObject, myArray);