Javascript中函数分类&this指向的实例详解
函数的分类
Javascript中的函数可大致分为以下几类:
1. 全局函数
全局函数是位于全局作用域下的函数,可以被任何地方调用到,其定义方式如下:
function funcName() {
// 函数体
}
2. 对象方法
对象方法是位于对象中的函数,其可以访问对象中的属性或方法,其定义方式如下:
var obj = {
name: 'Object Name',
funcName: function() {
// 函数体
}
};
其中funcName
即为对象方法。
3. 构造函数
构造函数是被用于实例化对象的函数,构造函数中的this
关键字指向实例化对象本身,构造函数的定义方式如下:
function ClassName(param1, param2) {
this.param1 = param1;
this.param2 = param2;
this.funcName = function() {
// 函数体
}
}
4. 函数调用
函数调用指的是使用函数的.call()或.apply()方法对函数进行调用,这类函数中的this
关键字指向调用者本身,其定义方式如下:
function funcName() {
// 函数体
}
var obj = {
name: 'Object Name',
};
funcName.call(obj);
其中this
指向的是obj
对象。
以上四种函数的例子在下面的代码段中会被详细解释。
this指向的实例详解
在Javascript中,this
关键字指向调用函数的对象,而this
指向的对象的值在函数被调用时决定,this
可以在任何一个对象、函数或使用call()、apply()方法的变量的作用域下使用。
下面的两个例子会详细解释this
的用法:
1. 对象中的对象方法
在对象person
中定义了一个方法fullName
,并且在方法中使用了this
关键字来引用对象的属性,代码如下:
var person = {
firstName: 'John',
lastName: 'Doe',
fullName: function() {
return this.firstName + ' ' + this.lastName;
}
}
person.fullName(); // John Doe
由于方法fullName
被调用时使用了person
对象来调用,所以this
关键字指向了person
对象。
2. 使用call()方法的函数
当一个函数使用.call()方法进行调用时,其第一个参数将会被作为this
关键字的值,代码如下:
function funcName() {
console.log(this.name);
}
var obj = {
name: 'My Object'
};
funcName.call(obj); // My Object
在上面的代码中,funcName
函数使用了.call()方法并传递了obj
对象作为第一个参数,这样this
关键字就指向了obj
对象。
总结
本文介绍了Javascript中函数的分类,即全局函数、对象方法、构造函数和使用函数.call()方法的函数,并且通过两个例子说明了this
关键字的用法。在实际开发中,这些知识点会经常用到,对于Javascript开发人员是非常重要的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript中函数分类&this指向的实例详解 - Python技术站