JavaScript四种调用模式和this示例介绍

 JavaScript调用时除了声明时定义的形参外,每个函数接受两个附加参数:this 和arguments,下面为大家介绍下JavaScript四种调用模式和this

JavaScript调用时除了声明时定义的形参外,每个函数接受两个附加参数:this 和arguments,this在面向对象编程中非常重要,它取决于调用模式。 
 
JavaScript有四种调用模式,方法调用模式,函数调用模式,构造器调用模式和apply调用模式。这些模式在初始化关键参数this上存在差异。 
 
方法调用模式:当一个函数被保存为对象的一个属性时,我们称它为一个方法,当一个方法被调用时,this被绑定到该对象上。如果调用表达式包含一个属性取表达式(即一个.点表达式或[script]下标表达式),那么它被当做一个方法调用。 
 代码如下:
var myObject = { 
value: 0; 
increment: function(inc){ 
this.value += typeof inc === 'number' ? inc : 1; 

}; 
 
myObject.increment(); 
document.writeln(myObject.value);//1 
 
myObject.increment(2); 
document.writeln(myObject.value);//2 
 
方法可以使用this去访问对象,所以它能从对象中取值或修改对象。this的绑定发生在调用的时候。这个超级迟绑定使得函数可以对this高度复用。通过this可以取得他们所属的上下文方法称为公共方法。 
 
函数调用模式:当一个函数并非一个对象的属性时,那么它被当做一个函数来调用 var sum = add(3, 4);//sum值为7 
当函数以此模式调用时,this被绑定到全局对象。 
 
构造器调用模式:JavaScript是一门基于原型继承的语言。这意味着可以直接从其他对象继承属性。该语言是无类别的。 
如果在函数前面带上new来调用,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将会被绑定到那个新对象上。 
 
Apply调用模式:因为JavaScript是一门函数式的面向对象编程语言,所以函数可以拥有方法。 
apply方法让哦我们构建一个参数数组并用其去调用函数。它也允许我们选择this的值。 
apply方法接受两个参数,第一个将被绑定给this的值,第二个就是一个参数数组。 
 

时间: 2024-08-05 16:12:14

JavaScript四种调用模式和this示例介绍的相关文章

JavaScript四种调用模式和this示例介绍_javascript技巧

JavaScript调用时除了声明时定义的形参外,每个函数接受两个附加参数:this 和arguments,this在面向对象编程中非常重要,它取决于调用模式. JavaScript有四种调用模式,方法调用模式,函数调用模式,构造器调用模式和apply调用模式.这些模式在初始化关键参数this上存在差异. 方法调用模式:当一个函数被保存为对象的一个属性时,我们称它为一个方法,当一个方法被调用时,this被绑定到该对象上.如果调用表达式包含一个属性取表达式(即一个.点表达式或[script]下标表

Javascript 函数的四种调用模式_javascript技巧

Javascript 函数的四种调用模式 1  函数模式      最普通的函数调用 // 声明式函数 function fn1 () { console.log(this); } // 函数表达式函数 var fn2 = function() { console.log(this); }; // 调用 函数中this表示全局对象,在浏览器中就是指window fn1(); //window fn2(); //window  2 方法模式      函数依附于一个对象,是对象的一个属性,我们再调

在Silverligh中调用Javascript (四种调用方法+简单与复杂参数的传递)

在本文我们将一起学习如何在Silverlight后台代码中调用javascritp脚本.Silverlight中内置了对于HTML.客户端脚本等的支持.很多情况下,我们编写的Web应用程序中用了一些JavaScript或者AJAX框架,我们可以在Silverlight调用某些脚本方法,或者说在Silverlight中触发某个脚本的执行. 本文将示例如何调用Silverlight脚本, 要使用此功能,我们需要引入命名空间: using System.Windows.Browser; //引入此命名

一起谈.NET技术,在Silverligh中调用Javascript (四种调用方法+简单与复杂参数的传递)

在本文我们将一起学习如何在Silverlight后台代码中调用javascritp脚本.Silverlight中内置了对于HTML.客户端脚本等的支持.很多情况下,我们编写的Web应用程序中用了一些JavaScript或者AJAX框架,我们可以在Silverlight调用某些脚本方法,或者说在Silverlight中触发某个脚本的执行. 本文将示例如何调用Silverlight脚本, 要使用此功能,我们需要引入命名空间: using System.Windows.Browser; //引入此命名

Android入门之Activity四种启动模式(standard、singleTop、singleTask、singleInstance)_Android

当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中.Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置. 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置: 启动模式有4种,分别为standard.singleTop.s

Android activity四种启动模式完全解析

Android使用"任务栈"(也称"back stack")存放启动的各个activity.一般情况下,一个应用只有一个任务栈.特殊情况允许一个应用使用多个任务栈.典型的FILO(First In Last Out)数据结构.点击"back"键,自上至下依次出栈结束activity. activity的四种启动模式分别如下: standard singleTop singleTask singleInstance 通过在AndroidManife

浅析JavaScript函数的调用模式_javascript技巧

我们说一个函数的调用模式是作为一个函数来调用,是要与其它三种调用模式做区分 函数其他的三种调用: 方法调用模式,构造器调用模式,apply/call调用模式.  方法的调用模式:  var obj={ fun1: function(){ //方法内容 this; //指的是window } } obj.fun1() //方法的调用 构造器的调用:  function Person(name, age, job){ this.name = name; this.age = age; this.jo

Activity 四种启动模式详细介绍

Activity 四种启动模式详细介绍 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" /&

Android入门之Activity四种启动模式(standard、singleTop、singleTask、singleInstance)

当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中.Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置. 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置: 启动模式有4种,分别为standard.singleTop.s