在 javascript之 this 关键字详解文章中,谈及了如下内容,做一个简单的回顾:         1.this对象的涵义就是指向当前对象中的属性和方法.       2.this指向的可变性.当在全局作用域时,this指向全局:当在某个对象中使用this时,this指向该对象:当把某个对象的方法赋值给另外一个对象时,this会指向后一个对象.       3.this的使用场合有:在全局环境中使用:在构造函数中使用,在对象的方法中使用.       4.this的使用注意点,最重要的…
之前一直迷惑,记不住call(),apply(),bind()的区别.不知道如何使用,一直处于懵懂的状态.直到有一天面试被问到了这三个方法的区别,所以觉得很有必要总结一下. 如果有不全面的地方,后续再进行补充. 1. 改变this的指向 var obj = { name : '张三', age : 17, myFun : function () { console.log(this.name + ' ' + this.age); } } var obj2 = { name : '李四', age…
自从学会call/apply/bind这三个方法后我就各种场合各种使用各种得心应手至今还没踩过什么坑,怎么用?说直白点就是我自己的对象没有某个方法但别人有,我就可以通过call/apply/bind去调用执行别人家的方法,不太懂具体用法的同学可移至MDN学习一下Function.prototype.call() Function.prototype.apply() Function.prototype.bind() ,本文不讲解使用,但是这三个方法并不是万能的,并不一定会执行你想要的那个函数,因…
一.探索call方法原理 Function.prototype.call = function(obj) { // 1.让fn中的this指向obj // eval(this.toString().replace("this","obj")); // 2.让fn方法再执行 // this(); } function fn1() { console.log(1); console.log(this); } function fn2() { console.log(2)…
javascript学习(2)call&apply&bind&eval用法 在javascript中存在这样几种特别有用的函数,能方便我们实现各种奇技淫巧.其中,call.bind.apply能改变函数运行时的上下文,或者说动态改变函数内部的this指向的作用,这就给我们使用时提供了极大的灵活性.而eval可以将传入的字符串当作JavaScript代码执行.本文,简单的介绍下其中的用法. 1. call 含义: Function.prototype.call() 可知它是Funct…
在JavaScript中,call.apply和bind是Function对象自带的三个方法,这三个方法的主要作用是改变函数中的this指向. call.apply.bind方法的共同点和区别:apply . call .bind 三者都是用来改变函数的this对象的指向的:apply . call .bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文(函数的每次调用都会拥有一个特殊值——本次调用的上下文(context)——这就是this关键字的值.):apply . ca…
JavaScript中call.apply个人理解 一句话即通俗的说:call.apply 是为了改变this的状态而存在的 }; } function personInfo(name,age){ this.name = name; this.age = age; } personInfo.prototype = { showInfo:function(){ console.log('我是'+this.name+','+'今年'+this.age+'岁.'); } } ); p.showInfo…
下面有关JavaScript中 call和apply的描述,错误的是? call与apply都属于Function.prototype的一个方法,所以每个function实例都有call.apply属性 两者传递的参数不同,call函数第一个参数都是要传入给当前对象的对象,apply不是 apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入 call传入的则是直接的参数列表.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象. 正确答案:…
Learning JavaScript with MDN (call, apply, bind) call, apply, bind Object.prototype.toString() 检测 js 数据类型 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString Object.prototype.toString({}) // "[object Objec…
在 javascript之 this 关键字详解 文章中,谈及了如下内容,做一个简单的回顾: 1.this对象的涵义就是指向当前对象中的属性和方法. 2.this指向的可变性.当在全局作用域时,this指向全局:当在某个对象中使用this时,this指向该对象:当把某个对象的方法赋值给另外一个对象时,this会指向后一个对象. 3.this的使用场合有:在全局环境中使用:在构造函数中使用,在对象的方法中使用. 4.this的使用注意点,最重要的一点就是要避免多层嵌套使用this对象. 对this…