函数四种调用模式以及其中的this指向
第一种:函数直接执行模式
function add(a,b){ console.log(this); return a+b; } add(10,20)//this===window
第二种:对象方法的调用模式
var obj={ name:'aaa', age:20, said:function(){ console.log(this); } } obj.said();//this===obj,此处this指代被调用者
第三种:构造器的调用模式
function School(){ this.said=function(){ console.log(this); } } var nanj=new School(); nanj.said();//对象调用自己的方法,this===nanj,类似上面
第四种:call和apply调用模式
function change(a,b){ this.detial=a*b; console.log(this); } var p={}; change.call(p,4,5);//此处的this===p console.log(p.detial); var q=[]; change.call(q,5,10)//this===q console.log(q.detial); //apply和call一样的用法,只不过apply第二个参数用数组进行传递 var arr=[]; change.apply(arr,[10,10]);//this===arr console.log(arr.detial); var str={}; change.apply(str,[20,20]);//this===str console.log(str.detial);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
相关推荐
-
JavaScript中 this 指向问题深度解析
JavaScript 中的 this 指向问题有很多文章在解释,仍然有很多人问.上周我们的开发团队连续两个人遇到相关问题,所以我不得不将关于前端构建技术的交流会延长了半个时候讨论 this 的问题. 与我们常见的很多语言不同,JavaScript 函数中的 this 指向并不是在函数定义的时候确定的,而是在调用的时候确定的.换句话说, 函数的调用方式决定了 this 指向 . JavaScript 中,普通的函数调用方式有三种:直接调用.方法调用和 new 调用.除此之外,还有一些特殊的调用方式
-
浅谈函数调用的不同方式,以及this的指向
一.函数的调用方式 1.作为函数,一种直接易懂的方式(即函数调用模式). 2.作为方法,方法是连接在对象上的,被这个对象调用,这种形式就是面向对象编程. 3.作为构造器,在构造的过程中一个新的对象被创建出来. 4.经由函数的apply或者call方法. 二.函数参数 1.传入参数 (1)传入变量多于函数定义变量. (2)函数定义变量多余传入变量,多出来的变量是undefined 2.函数在被调用的时候,隐形的传入两个参数argument和this(即argument和this被悄悄传入函数,作用
-
老生常谈 js中this的指向
在js中this的指向对于新手来说一定是个难题,但是如果你真正理解了的话,也就没什么问题啦,下面就来讲讲this吧. JS中,this的值取决于调用的模式(调用对象),而JS中共有4种调用模式: 1.函数调用模式 当一个函数不是一个对象的属性时,当作函数俩调用,这时函数内的this指向全局对象(大对数情况下是window) window.value=1; function getValue(){ console.log(this.value); } getValue();//输出1,此时的thi
-
javascript函数的四种调用模式
1.介绍 先介绍一下函数的调用模式有哪四种: 函数调用模式, 方法调用模式, 构造函数调用模式, 上下文调用模式: 在这里对于函数的调用模式,主要介绍每种调用模式的this的指向和返回值. 2.代码分析 ①.函数调用模式 下面的调用模式就是大家最熟悉的函数调用模式,而函数调用模式的this指向和返回值是什么呢? function fn1 () { console.log(this); }; fn1(); // 在调用函数fn1时,输出的this的结果是Window 在上述代码中,fn1也就是函数
-
JavaScript中的this引用(推荐)
this this是javascript的一个关键字,随着函数使用场合不同,this的值会发生变化.但是总有一个原则,那就是this指的是调用函数的那个对象. 一.定义 1.this是函数内部的一个特殊对象(或this引用)--它引用的是函数据以执行的环境对象. 2.this引用是一种在JavaScript的代码中随时都可以使用的只读变量. this引用 引用(指向)的是一个对象,它有着会根据代码上下文语境自动改变其引用对象的特性.它的引用规则如下: • 在最外层代码中,this引用 引用的是全
-
函数四种调用模式以及其中的this指向
第一种:函数直接执行模式 function add(a,b){ console.log(this); return a+b; } add(10,20)//this===window 第二种:对象方法的调用模式 var obj={ name:'aaa', age:20, said:function(){ console.log(this); } } obj.said();//this===obj,此处this指代被调用者 第三种:构造器的调用模式 function School(){ this.s
-
Javascript 函数的四种调用模式
Javascript 函数的四种调用模式 1 函数模式 最普通的函数调用 // 声明式函数 function fn1 () { console.log(this); } // 函数表达式函数 var fn2 = function() { console.log(this); }; // 调用 函数中this表示全局对象,在浏览器中就是指window fn1(); //window fn2(); //window 2 方法模式 函数依附于一个对象,是对象的一个属性,我们再调用这个函数.这种模式就
-
JavaScript四种调用模式和this示例介绍
JavaScript调用时除了声明时定义的形参外,每个函数接受两个附加参数:this 和arguments,this在面向对象编程中非常重要,它取决于调用模式. JavaScript有四种调用模式,方法调用模式,函数调用模式,构造器调用模式和apply调用模式.这些模式在初始化关键参数this上存在差异. 方法调用模式:当一个函数被保存为对象的一个属性时,我们称它为一个方法,当一个方法被调用时,this被绑定到该对象上.如果调用表达式包含一个属性取表达式(即一个.点表达式或[script]下标表
-
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句: function fnMethodName(x){alert(x);} 函数字面量(Function Literals): var fnMethodName = function(x){alert(x);} Function()构造函数: var fnMethodName = new Function('x','alert(x);') // 由Function构造函数的参数个数可变.最后一个参数写函数体
-
Android入门之Activity四种启动模式(standard、singleTop、singleTask、singleInstance)
当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中.Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置. 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置: 启动模式有4种,分别为standard.singleTop.s
-
JavaScript创建对象的四种常用模式实例分析
本文实例讲述了JavaScript创建对象的四种常用模式.分享给大家供大家参考,具体如下: 这里介绍了javascript中创建对象常用的几种模式,包括:工厂模式,构造函数模式,原型模式,组合构造函数与原型的模式,动态原型模式. 一.工厂模式 看如下代码: function getMySon(name,sex){ var o={}; o.name=name; o.sex=sex; o.sayName = function(){ alert(this.name); } return o; } so
-
Android编程中Activity的四种启动模式
本文实例讲述了Android编程中Activity的四种启动模式.分享给大家供大家参考,具体如下: Activity启动方式有四种,分别是: standard singleTop singleTask singleInstance 可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题. 设置Activity的启动模式,只需要在AndroidManifest.xml里对应的<activity>标签设置android:launchMode属性,例
-
Android SharedPreferences四种操作模式使用详解
Android SharedPreferences详解 获取SharedPreferences的两种方式: 1 调用Context对象的getSharedPreferences()方法 2 调用Activity对象的getPreferences()方法 两种方式的区别: 调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享. 调用Activity对象的getPreferences()方法获得的Sh
-
Activity 四种启动模式详细介绍
Activity 四种启动模式详细介绍 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" /&
随机推荐
- JS 表单验证大全
- linux下因为系统编码问题造成乱码的快速解决方法
- javascript经典特效分享 手风琴、轮播图、图片滑动
- JS实现问卷星自动填问卷脚本并在两秒自动提交功能
- 使用php语句将数据库*.sql文件导入数据库
- Android RecyclerView自定义上拉和下拉刷新效果
- 有道JavaScript监听浏览器的问题
- Node.js通过身份证号验证年龄、出生日期与性别方法示例
- C语言位运算符:与、或、异或、取反、左移与右移详细介绍
- 详谈jQuery中的一些正则匹配表达式
- input 高级限制级用法
- JavaScript实现设计模式中的单例模式的一些技巧总结
- 照片各部分的彩色与黑白交替更换
- C++ ofstream与ifstream详细用法
- 浅谈自定义注解在Spring中的应用
- webpack中使用iconfont字体图标的方法
- Vue异步组件处理路由组件加载状态的解决方案
- 配置Nginx的防盗链的操作方法
- Pytorch反向求导更新网络参数的方法
- Python 读取用户指令和格式化打印实现解析