Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JavaScript方法调用

JavaScript方法调用
EN

Stack Overflow用户
提问于 2013-02-02 02:50:38
回答 3查看 224关注 0票数 0

在第61页第4.5节的"JavaScript:权威指南,第6版“一书中,它写道:

在方法调用中,属性访问的主题的对象或数组在执行函数时成为this参数的值。

有人能用通俗易懂的英语解释这句话的意思吗?我尤其不知道“属性访问的subject”是什么意思。

非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-02 03:19:59

我对“这”的理解是,“这”是函数执行过程中的上下文。

除非您解释地更改了“this”,否则默认行为是函数执行过程中的上下文是函数调用的上下文。

第一种情况(最简单):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var writeHelloFromThis = function() {
       console.log('hello from ' + this);
 };

writeHelloFromThis();

->输出是"hello from object Window",因为调用的上下文是全局对象,即窗口。

第二个例子:现在我们定义一个对象,并将writeHelloFromThis添加到它中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var anObject={};

anObject.writeHelloFromThis = writeHelloFromThis;

现在我们用writeHelloFromThis作为上下文调用anObject:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
anObject.writeHelloFromThis();

->输出是"hello from Object“:在本例中,这是函数调用的上下文: anObject。

第三种情况,有点棘手:现在我们将把writeHelloFromThis of 'anObject‘存储到另一个var中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var anObjectsWriteHelloFromThis = anObject.writeHelloFromThis;

anObjectsWriteHelloFromThis只是存储一个函数(=一个引用),而不知道任何关于'anObject‘的信息。所以如果我们打电话:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 anObjectsWriteHelloFromThis();

输出将是"hello from object Window",因为调用的上下文是全局对象即窗口。

最后一点:如果这种方式对你来说是有限制的,你是对的:这就是为什么某些函数方法:绑定、调用、应用,允许您更改函数的上下文。

最后一个例子是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 writeHelloFromThis.call(anObject);

将有输出"hello from Object",而不是窗口,因为这里我们强制'this‘为anObject。

票数 0
EN

Stack Overflow用户

发布于 2013-02-02 02:52:30

在JavaScript (目前)中,this取决于函数的调用方式,而不是函数的定义方式。弗拉纳根的意思是,鉴于这一点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foo.bar();

...during对bar的调用,this将引用foo引用的对象。

如果您来自其他一些语言,如Java或C#,您可能会认为,“但this总是在bar中引用foo”,但在JavaScript中并非如此。示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var f = foo.bar; // Get a reference to the function, but not calling it
f();             // Now we call it

在上面的调用中,对bar的调用中的bar而不是 foo,它是全局对象(如果没有严格模式)或undefined (如果是的话)。

更多(在我的博客上):

票数 1
EN

Stack Overflow用户

发布于 2013-02-02 03:02:08

为了补充T.J.的答案,这里是一个例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var o = {}; // define an object
o.name = 'foo'; // add an attribute to the object
var f = function() { // define a function
    return this.name; // the function uses this internally
}
o.someFunction = f; // add the function to the object
var result = o.someFunction();

现在,result的值是'foo',因为函数是在对象o上调用的,而在函数内部,this引用了调用函数的对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14661108

复制
相关文章
Rstdio导入Excel文件
这个是后面要加载的库 点这里 出现这个 选择你的文件 导入 这个是实际执行的命令 可以浮动 可以设置过滤器 这个可以可视化过滤器 这个是内置的缓存区 可以去看文件底层的表示方法 是浏览器内核
云深无际
2020/10/23
1.6K0
Rstdio导入Excel文件
C#仪器数据文件解析-Excel文件(xls、xlsx)
不少仪器工作站可以将数据导出为Excel文件,包括97-2003版本的xls文件和2007+的xlsx文件。 采集Excel文件相比采集pdf文件更容易、程序更健壮,毕竟Excel中数据有明确的行、列的定义,利于数据解析。 Excel早期的xls文件和后来的xlsx文件的格式不一样,xls是二进制特定格式文件,xlsx是zip压缩包,其中数据使用xml定义。虽然两种文件格式定义不同,但解析文件数据可以通过中间件,因此只要理解了Excel文件的工作簿、sheet页、行、列、单元格等概念即可,无需了解其文件的详
用户1637609
2018/04/12
2.1K0
SAS X Command Execute Python Code
小编最近在潜心研究外部数据导入SAS,深感Excel的导入的不便利,想实现程序控制将Excel改为CSV在通过CSV导入SAS。想着想着,就想到用外部语言来实现文件的另存为的功能,开始呢,想用Excel中的VAB来实现,后来呢觉得SAS执行Excel里面Macro不太方便~因此就想用Python来实现。
Setup
2019/10/21
1.6K0
SAS  X Command Execute Python Code
读写excel(.xls or .xlsx)
https://github.com/xiaomingtongxie/springboot-study/blob/master/spring-study/src/main/java/demo/excel/ReadWriteExcelFile.java
小小明童鞋
2019/03/12
2K0
用python读Excel文件,同时支持xls和xlsx
解决方法 经过查阅资料,发现xlrd库有更新,官网(https://pypi.org/project/xlrd)显示最新版的xlrd(2.0.1)的确不支持,但老版的xlrd(1.2.0)是支持xlsx的。
ExASIC
2021/11/02
2.1K0
用python读Excel文件,同时支持xls和xlsx
EasyExcel实现Excel文件导入
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。
Vincent-yuan
2022/09/08
1.8K0
EasyExcel实现Excel文件导入
mysql导入excel文件_将Excel数据导入MySQL「建议收藏」
去年的投资统计月报数据量庞大,原始表格是xls格式(还是EXECL2003的),单个sheet最大只能放几万行,但数据总量有10万行以上,于是只能存成两个sheet。EXECL2010格式倒是单个sheet可以放得下,可是居然不能将数据完整的从一个sheet复制粘贴到另一个sheet(可能是因为行数太多)。正好想学习一下execl数据导入MySQL数据库的方法,于是开始尝试。
全栈程序员站长
2022/10/02
16.2K0
mysql导入excel文件_将Excel数据导入MySQL「建议收藏」
Java 实现文件批量导入导出最佳实践(兼容xls,xlsx)
java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下。
业余草
2020/07/10
4.1K0
Java 实现文件批量导入导出最佳实践(兼容xls,xlsx)
C# excel文件导入导出
在C#交流群里,看到很多小伙伴在excel数据导入导出到C#界面上存在疑惑,所以今天专门做了这个主题,希望大家有所收获!
zls365
2020/08/19
3.7K0
C# excel文件导入导出
PHP导入Excel文件的方法
借助PHP-ExcelReader这个开源类,我们可以轻松地导入Excel文件数据,示例代码如下:
魏杰
2022/12/23
1.4K0
Excel文件导入导出操作
日常开发工作中对于文件的相关操作大家多少都会涉及:上传解析、数据导出等。此篇内容主要分享一下工作中常用的Excel文件的解析和导出工作类实现。
沁溪源
2020/10/13
1.3K0
Excel批量xls转xlsx工具
有一些系统因为时代原因导出的Excel文件是xls格式,如需批量转换为xlsx格式,将这个Excel文件放在某文件夹内并打开,点击运行,即完成本文件夹内所有xls的批量转换。
wujunmin
2021/11/26
1.8K0
DataTable导入到Excel文件
public static bool DataTableToExcel(System.Data.DataTable dt, string fileName, bool showFileDialog=false)         {             if (showFileDialog)             {                 SaveFileDialog saveFileDialog = new SaveFileDialog();                 saveFile
跟着阿笨一起玩NET
2018/09/18
1.5K0
MySQL导入csv、excel或者sql文件
上面的csv文件以’,’逗号作为分割符,需要用双引号或者单引号括起来。如果是以’\t’制表符作为分隔符的话,可不用显示指明域分割符。
恋喵大鲤鱼
2018/08/03
7.1K0
SAS-RTF的合并【完善篇】
这一篇推文是针对上一篇推文,进行SAS程序与功能上的完善!点击此处将可跳转至上一篇推文:SAS-如何简单快捷的实现RTF合并。在上一篇推文推送后,有不少人都对RTF的合并感兴趣,并找到了小编。于是小编决定将RTF的合并完善一下,写成宏程序,以便有需要的朋友可以直接使用。
Setup
2019/10/20
4.1K1
Java导入Excel文件的实现方式
在Java开发中,我们经常需要实现Excel数据的读取和导入功能。对于Excel文件,常用的Java处理库有Apache POI和jxl等。其中,Apache POI提供了一个非常完整的解决方案,可以处理老旧的Excel 2003格式,也可以处理较新的Excel 2007以来的格式。本文将以Apache POI为例,从环境搭建、文件读取到数据解析,详细说明如何用Java导入Excel文件。
很酷的站长
2023/09/21
5360
Java导入Excel文件的实现方式
Excel VBA批量转换某个文件夹里的xls工作簿为xlsx
With Application.FileDialog(msoFileDialogFolderPicker)
办公魔盒
2019/07/22
1.9K0
Excel VBA批量转换某个文件夹里的xls工作簿为xlsx
SAS学习--导入导出文件、拼表、数据集筛选
前言 目前项目进行到中期,最近又学习了一些新的知识,例如sas拼表、导出文件、数据集筛选等,好记性不如烂笔头,记录下来有待后期回头查看,人生总是走在学习的道路上。 SAS 导出文件 SAS将数据集导出为文件有两种方法,一种使用PROC EXPORT,另外一种是使用DATA步 proc export PROC EXPORT DATA=DATA_SET OUTFILE="/sas/data_set.txt" DBMS=TAB REPLACE; DELIMITER="|"; PUTNAMES=NO; RUN; /
tyrantlucifer
2022/03/23
3.2K0
我去,Excel文件导入失败都搞不定么----记一次Excel文件导入失败--is not valid
昨晚8点左右,正准备下班走人,突然,产品小姐姐的在QQ上猛地抖动了我一下。产品小姐姐果然是无事不登三宝殿。线上出了问题!!!!!!!好几个版本没有变动多的文件导入突然不行了。客户催运营,运营催产品,产品催我这个小开发。哎,苦逼的程序员。
码农飞哥
2021/08/18
1.5K0
点击加载更多

相似问题

Excel -每天从联机xls文件导入数据

12

将多个联机XLS文件导入R

13

不带标题的SAS导入XLS文件

10

导入Excel文件xls/xlsx

26

如何将多个.xls文件导入SAS?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文