javascript的this指向问题

Function.prototype.apply=function(){
var o=this; //the Function to invoke;
}这里的o获得的this不是Function原型对象吗?为什么注释是引用了函数呢?

第1个回答  2018-06-16
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263<!DOCTYPE HTML><html><head><title>yugi</title><meta charset=UTF-8 /><style type="text/css"></style><script type="text/javascript" src="jquery-1.8.0.min.js"></script><script type="text/javascript">var item = 10;var game = (function() { var item = 5; var get = function() { // 这个this取决于哪个对象调用这个get方法。 return this.item; } var test = function() { // 这个get方法是被window调用的,属于全局的item // 等价于 window.get() var finalResult = get(); console.debug (finalResult); } return { get: get, test: test }})();console.error (game);// 通过调用test方法,但是test方法里面并没有声明this,故而为window,就是全局的调用,所以就是那个外面的itemgame.test(); // 10 // game对象调用get方法,this就是game,但是返回的是 {get:get,test:test},并没有所谓的item,故而为undefinedgame.get(); //---------------------------------- var item = 10;var game = (function() { var item = 5; var get = function() { // 哪个调用get方法,this就是哪个 console.log (this.item); // 全局的item console.log (window.item); // 默认局部变量 console.log (item); } return { get: get }})()console.warn (game);// 同理,game就是{get:get},没有所谓的item,但是get方法里面是this调用,所以就是undefinedgame.get(); // 结果为undefined // 回答完毕,费心劳力,采纳即可。。。。。。。。!!!!!!!~~~~Void@@#####$$$$%%^&**(())</script></head><body></body></html>
第2个回答  2018-06-27
this的定义:是包含它的函数作为方法被调用时所属的对象。

就是包含它的对象本回答被网友采纳

JavaScript中的this指向问题总结
全局上下文在全局状态下this指向全局对象,浏览器端指向window,node端指向globalThis console.log(this===window)\/\/true 函数中的this对象调用函数,函数中的this指向最近的调用它的对象,函数前没有对象则视为全局对象调用函数vara=1;varb={a:2,};functionprint(){console.log(this.a);}print()\/\/1...

JavaScript中this指向详细分析(译)
JavaScript中的this指向取决于四种函数调用类型:直接调用、方法调用、构造函数调用和间接调用(包括call、apply和bind)。每种调用方式都会产生不同的上下文,可能导致this指向与预期不符。首先,函数直接调用中,非严格模式下this指向全局对象(浏览器中的window),而在严格模式下,this为undefined。内部函数的...

JavaScript | 揭秘JavaScript中this的变化规律
什么是this?在JavaScript中,this指的是当前执行代码的环境对象。MDN上的描述是:this的值取决于它出现的上下文:函数、类或全局。对于不同场景下的this指向,有一些对应的规律。接下来,我们将针对不同的场景下的this指向进行深入理解和解决一些常见的面试题。⚡注1:本文主要讨论的是浏览器环境下...

在JavaScript函数中this指向的是什么
当this从函数内部访问时,实际上就是访问其执行上下文。调用函数方式与this上下文取决于函数的调用方式,我们可以通过4种不同的方式来调用上下文的函数,因此this也有四种不同的指向1. 一个基本的函数调用2. 使用上下文对象调用函数,也称为隐式绑定。3. 使用call()或调用函数apply(),也称为显式绑定。...

javascript 的 this 指向问题
js 中的this分两种情况,普通函数中的 this 指向取决于调用的环境,lambda表达式中的this指向window。apply 方法的的说明如下:Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:这个是数组,它将作为参数传给Function(args-->arguments)题主这个Programmer如果当成...

你不知道的JavaScript之this指向
JavaScript对this指向话题的理解是永不过时的,鉴于JavaScript中this风骚的运作方式,本文将试图将其拆解分析,烹饪再食用~。 thisisallaboutcontext.,大概意思就是:this与当前执行上下文相关。 this说白了就是找离自己最近的对象,即拥有当前上下文(context)的对象(contextobject)。 换句话说,this与函数被调用时,调用函数的...

JavaScript中this的理解
一.this的概述 this是Javascript语言的一个关键字,它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,随着函数使用场合的不同,this的值会发生变化,但是有一个总的原则,那就是this指的是调用函数的那个对象。 总结:谁调用了这个函数,this指向谁(对象) 二.this的指向 因为this存在于函数内部,通过不同的...

JS基础系列-聊聊this
面向对象编程中,我们经常要和this打交道。而对于函数中this到底指向哪里,对刚开始接触JavaScript的我们,经常会分不清楚。我们必须明确的是函数中this的指向 不是固定 的,和函数执行时的环境有关,简单的说,我们可以理解函数中this指向的是 当前调用该函数的对象 ,所以我们也针对以下几种情况来...

JavaScript中的this指的是什么?
JavaScript中的this指的是在特定执行上下文下对象的引用。理解this的指向是前端开发中至关重要的。本文将深入探讨this的运行时上下文和绑定规则,通过实例分析帮助大家理解this在不同场景下的行为。首先,让我们从JavaScript的执行上下文说起。JavaScript引擎在执行代码时,主要有三种执行上下文:全局执行上下文、...

js-改变this指向的几种方法
javaScript 为我们专门提供了一些函数方法来帮我们更优雅的处理函数内部 this 的指向问题,常用的有 bind()、call()、apply() 三种方法 call() 方法调用一个对象。简单理解为调用函数的方式,但是它可以改变函数的 this 指向。 fun.call(thisArg, arg1, arg2, ...) thisArg:在 fun 函数运行...

相似回答