最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js函数的调用及有关隐式参数arguments和this的问题

来源:动视网 责编:小采 时间:2020-11-27 20:12:29
文档

js函数的调用及有关隐式参数arguments和this的问题

js函数的调用及有关隐式参数arguments和this的问题:##一、函数调用的几种不同方式:####1、作为一个函数进行调用 ####2、作为一个方法进行调用,在对象上进行调用,支持面向对象编程####3、作为构造器进行调用,创建一个新对象####4、通过apply()或call()方法进行调用,这种方式相对最复杂##二、函数调用都会
推荐度:
导读js函数的调用及有关隐式参数arguments和this的问题:##一、函数调用的几种不同方式:####1、作为一个函数进行调用 ####2、作为一个方法进行调用,在对象上进行调用,支持面向对象编程####3、作为构造器进行调用,创建一个新对象####4、通过apply()或call()方法进行调用,这种方式相对最复杂##二、函数调用都会


##一、函数调用的几种不同方式:
####1、作为一个函数进行调用
####2、作为一个方法进行调用,在对象上进行调用,支持面向对象编程
####3、作为构造器进行调用,创建一个新对象
####4、通过apply()或call()方法进行调用,这种方式相对最复杂

##二、函数调用都会传递两个隐式参数并存在于函数的作用域内:arguments和this
###函数传参和形参不一致如何处理:
####1、实参>形参--》超出部分实参不会分配
####2、实参<形参--》没有对应的形参分配为undefined

##三、
####1、函数上下文:依赖于函数的调用方式(四种调用方式)。
####2、arguments:所有参数的集合,并有length属性,使用arguments[2]等获取;但arguments不是数组,没有数组的那些方法
####3、this:引用了与该函数调用进行隐式关联的一个对象,称之为函数上下文

##四:
####1、“作为函数”调用:指上面四种的第一种方式,有别于其他三种
例如:function test(a,b){}/var test = function(a,b){}
此时的函数上下文是window,即**this==window**

####2、“作为方法”调用:当函数被赋值给一个对象,并使用引用该函数的这个属性时
I、一个方法所属的对象在该方法体内可以以this调用

var o = {};
o.test = function(){};
o.test();

此时的函数上下文是o这个对象,即**this==o**

####3、“作为构造器”调用:和函数声明一样,区别于如何调用该函数,在函数调用前使用new关键字
function test(){return this};
new test();

###构造器的特别之处:
####I.创建一个新的空对象
####II.传递给构造器的对象是this对象,从而成为构造器的上下文
####III.如果没有显式的返回值,新创建的对象则作为构造器的返回值进行返回

function Ninja(){
this.skulk = function(){return this};
//无显式返回,故返回this===o
}===function Ninja(){
var o = {};
o.skulk = function(){return this;};
return o;
}
var ninja1 = new Ninja();
var ninja2 = new Ninja();
ninja1.skulk === ninja1;
ninja2.skulk === ninja2;

####apply()和call()方法:显式的指定任何一个对象作为函数上下文
apply()需要两个参数:1、作为函数上下文的对象2、作为函数参数所组成的数组
call()也需要两个参数:区别是第二个参数是一个参数列表

##可以让任何元素作为apply()和call()的上下文

文档

js函数的调用及有关隐式参数arguments和this的问题

js函数的调用及有关隐式参数arguments和this的问题:##一、函数调用的几种不同方式:####1、作为一个函数进行调用 ####2、作为一个方法进行调用,在对象上进行调用,支持面向对象编程####3、作为构造器进行调用,创建一个新对象####4、通过apply()或call()方法进行调用,这种方式相对最复杂##二、函数调用都会
推荐度:
标签: 参数 函数 调用
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top