this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象 这一点与函数中自由变量Action-varibal不同 var object = { name : 'The Kite Runner', obj : { name : 'childProperty', fn : function(x, y){ var result = x + y; console.log('this-context'+this); consol…
总所周知,function () {}函数体内的this对象指向的是调用该函数的对象,那么我们看一下这个例子 <script> var length = 3; function fn () { console.log(this.length) } fn(); </script> 函数调用是在最外层发生的,那么由于全局对象this的存在,那么函数体内的this指向的就是window对象. 在浏览器环境下,全局变量和window对象的属性是等价的,所以定义了length全局变量就相当于…
一.JavaScript中的函数 在了解this指向之前,要先弄明白函数执行时它的执行环境是如何创建的,这样可以更清楚的去理解JavaScript中的this指向. function fn(x,y,name){ var str1=x; var str2=y; this.name=name; function(){ alert(str1,str2); } }fn(1,1,Admin); 当调用fn(1,1,Admin)时,首先函数会创建一个活动对象,也叫做变量对象,接着为函数调用创建一个类似数组的…
很多人都会被JavaScript中this的指向(也就是函数在调用时的调用上下文)弄晕,这里做一下总结: 首先,顶层的this指向全局对象. 函数中的this按照调用方法的不同,其指向也不同: 1.函数调用中的this指向全局对象 2.方法调用的函数中的this指向调用函数的对象: function AnObject(name){ this.name = name; this.getThis = function(){ console.log(this); } } var ob = new An…
作为一个前端小白在开发中对于this的指向问题有时候总是会模糊,于是花时间研究了一番. 首先this是JS的关键字,this是js函数在运行是生成的一个内部对象,生成的这个this只能在函数内部使用. 但是随着函数使用场合的不同,this的值会发生变化.有一个原则不会变,那就是this指的是,调用函数的那个对象. demo1: 此时函数运行的结果是 1 ,x是全局变量,因为匿名函数demo()是被window调用的,原始写法是window.demo(),因为demo()是被window调用的,所…
JavaScript中this的指向问题! 另一个特殊的对象是 this,它在标准函数和箭头函数中有不同的行为. 在标准函数中, this 引用的是把函数当成方法调用的上下文对象,这时候通常称其为 this 值(在网页的全局上下文中调用函数时, this 指向 windows).来看下面的例子: window.color = 'red'; let person = { name: 'lvhang', age: 23, color: 'pink' } function sayColor() { c…
没搞错吧!js写了那么多年,this还是会搞错!没搞错,javascript就是回搞错! ………… 文章来源自——周陆军的个人网站:http://zhoulujun.cn/zhoulujun/html/webfront/ECMAScript/jsBase/2016_0329_7729.html 在写java的时候,this用错了,idea都会直接报错! 比如…… 但是,js,……idea,爱莫能助了…… 在面向对象编程里有两个重要的概念:一个是类,一个是实例化的对象,类是一个抽象的概念,用个形象…
this是JavaScript中的关键字之一,在编写程序的时候经常会用到,正确的理解和使用关键字this尤为重要.首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然网上大部分的文章都是这样说的,虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解是不准确的,所以在你理解this的时候会有种琢磨不透的感觉),那么接下来我会深入的探讨这个问题.…
看完此片文章豁然开朗,非常感谢.javascript技术难点(三)之this.new.apply和call详解 下面说一说自己的理解: this指针总是指向调用他的对象,其实我更愿意理解为:this指针总是指向其最小的作用域 . 在javascript中,我们可以理解最外层的作用域是windows. 在下面的代码段中,fun1最近的作用域是windows,因此this的值是Window. <script type="type/javascript"> function fu…
javascript是一门类java语言有很多跟java相类似的特点,但也仅是类似而已,真正使用中还是有很大的差别.this指针常常让很多初学者抓狂,本人也曾为此困惑不解,查找过很多资料,今天在这里总结一下,希望能帮助后来者更快驯服这只拦路虎.网上有很多讲解this指针的文章其中不乏精品,以我看来了解this指针关键在于掌握javascript中函数的四种调用模式.那么什么是调用?调用指的是跟在任何产生一个函数值的表达式之后使用"()",obj.f()这种方式成为调用,obj.f这种方…