Atitit.js this错误指向window的解决方案

Atitit.js this错误指向window的解决方案

 

 

1.1. 出现地点and解决之道1

1.2. call,applybind这三个方法2

1.2.1. Function.prototype.call2

1.3. 在函数内部出现的this,指什么要看这个this所在的函数的被调用方式。 不论这个this出现在什么样的函数中,层次有多深,结构多复杂,只要看直接包含它的函数即可。例如:  (1) 被直接调用时,this指全局对象window。3

2ref3

 

 

1.1. 出现地点and解决之道

出现地点::: 回调js  methd的时候儿...

解决之道::HRE.exe(mp,this.merge_callback.bind(this));

 

因为:::

 

下面说说我的拙见,如有不对,大神请指出。
先看setTimeout(this.sayHello, 1000);
this.sayHello只是传了一个函数引用过去,这里的this指的是foo.prototype,因为JS函数块是作用域,而setTimeout(this.sayHello, 1000); 是在foo.prototype.bar里面。

foo.prototype.bar = function(){

setTimeout(this.sayHello, 1000);

}

所以就相当于

setTimeout(function(){

    alert(this.myName);

}, 1000);

属于2、函数调用,this指向window。



 

setTimeout其实是window.setTimeout,setTimeout执行的时候this是指向window

作者::  (attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

 

1.2. call,applybind这三个方法

1.2.1. Function.prototype.call

fun.call(thisArg[, arg1[, arg2[, ...]]])

可以用来指定调用call的函数的this指向(函数体的作用域),在所给定的thisArg(对象)作用域中执行该函数(call的调用者),后面的参数是函数调用过程中需要用到的数据,以逗号分隔的形式给出。

 

 

apply函数与call的使用场景类似,不同的地方是在调用参数部分,直接给出的是参数数组,而不是挨个添加,这对于编码来讲,大有裨益,可以直接把参数处理成数组的形式,传递进去,省去不少功夫,也提升了自动化能力

 

与上面不同的是,bind会返回一个改变this指向的新函数 ,注意这里强调的是新函数,其与之前的使用的不是同一块内存地址,

 

 

1.3. 在函数内部出现的this,指什么要看这个this所在的函数的被调用方式。
不论这个this出现在什么样的函数中,层次有多深,结构多复杂,只要看直接包含它的函数即可。例如:

(1) 被直接调用时,this指全局对象window。

    func();

(2) 被作为构造函数调用时,this指当前正在构建的对象。

    new func();

(3) 被作为某个对象A的方法调用时,this指方法所属的对象A。

    A.func();

(4) 使用函数的apply或call方法调用时,this指第一个参数B。

    func.apply(B, [m, n, ...]);

    

    func.call(B, m, n, ...);



2. ref

JS中的callapplybind方法的区别-日拱一卒-微头条(wtoutiao.com).htm

(2 封私信   条消息) JS中的this 在不同的地方指向不一样,在哪些地方需要注意? 知乎.htm

 

转载于:https://www.cnblogs.com/attilax/p/5316822.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10下VS2013+OpenCV2.4.9环境配置

参考来源https://blog.csdn.net/wsf09/article/details/78853823 一、安装Visual Studio2013 VS2013的安装可以参考软件安装管家公众号 二、配置OpenCV2.4.9 1、首先下载安装包 可以从OpenCV的官网下载 OpenCV2.4.9,但是会有点慢,中途可能还下载失败…

大脑简史(3)-大脑的结构

来源:人机与认知实验室前两篇文章,笔者和大家简短的介绍了一下大脑历史上的大事件和研究大脑的常用手段,这篇文章,想和大家分享一下:大脑的结构,也就是说:我们的大脑内究竟有什么。1967年&#…

Halcon算子学习:xyz_to_object_model_3d

xyz_to_object_model_3d (X, Y, Z : : : ObjectModel3D) 将3D点从图像转换为3D对象模型。 输入: X (input_object) 单通道图像→object (real) 用三维点的x坐标和三维点ROI区域。Y (input_object) 单通道图像→object (real) 图像与三维点的y坐标。Z (input_obje…

OpenCV的imshow不能显示图像(显示的图像全灰)

问题:OpenCV的imshow不能显示图像,虽然能打开一个显示图像的窗口,但是只显示出背景(全灰色) 解决方法:在imshow语句后面加一句waitKey(100); 在imshow之后如果没有waitKey语句则不会正常显示图像

传感器融合:自动驾驶领域的另一个突围方向

来源:AI芯天下目前,自动驾驶的安全事故原因绝大多数出现在传感器这个重要环节,将各类传感器融合在一起,能否就能起到1+1>2的效果呢?传感器是汽车感知周围的环境的硬件基础,在实现自动…

第四周学习进度情况

第四周所花时间(包括上课)835MIN代码量(行)200博客量(篇)3了解到的知识 1.继续锻炼了结对开发的能力 2.更熟练地运用了数组结构 3.学会了从小功能入手,在软件设计上有新的提高 4.对迭代开发更加…

Halcon算子学习:surface_normals_object_model_3d

surface_normals_object_model_3d ( : : ObjectModel3D, Method, GenParamName, GenParamValue : ObjectModel3DNormals) 计算三维物体模型的三维曲面法线 输入: ObjectModel3D (input_control) 包含3D点数据的3D对象模型句柄。Method(input_control) 法线计算方…

LeetCode 255. Verify Preorder Sequence in Binary Search Tree

原题链接在这里:https://leetcode.com/problems/verify-preorder-sequence-in-binary-search-tree/ 题目: Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary search tree. You may assume each nu…

OpenCV中HoughLinesP( )检测直线函数返回的坐标的原点

习惯中坐标的原点是在左下角的,向右为x轴正方向,向上为y轴正方向 HoughLinesP( )函数用于检测二值图中的直线,返回的坐标为(x1,y1,x2,y2),分别代表直线两端的坐标&#…

Halcon算子学习:smooth_object_model_3d

smooth_object_model_3d ( : : ObjectModel3D, Method, GenParamName, GenParamValue : SmoothObjectModel3D) 平滑3D对象模型的3D点 输入: object_model_3d(input_control) 包含3D点数据的3D对象模型的句柄。Method(input_con…

机器人巨头争霸,谁主沉浮?

来源:高工机器人过去以来,ABB、发那科、安川、库卡这四家机器人巨头独霸中国一半以上的市场份额。但这一情况开始逆转,本土企业在被外企“教育”了多年之后,开始用更大的勇气和更快的创新速度给以“老师”们迎头痛击。2019年&…

MATLAB使用imshow之后plot的坐标原点在左上角!

在MATLAB使用imshow显示一张图后,如果继续在这张图中使用plot画图,则此时坐标原点换到了左上角,不再是左下角了,如下面的例子: figure(1); imshow(K) hold on plot(x,y) %此时原点在左上角

Halcon算子学习:create_surface_model

create_surface_model ( : : ObjectModel3D, RelSamplingDistance, GenParamName, GenParamValue : SurfaceModelID) 创建执行基于表面的匹配所需的数据结构 输入: object_model_3d 3D对象模型的句柄。RelSamplingDistance (input_control) real→(real) 相对于物…

任正非:5G独立组网全世界只有华为一家做好了 我们在等待高通进步

任正非来源: TechWeb华为创始人、CEO任正非7月18日在广东接受了意大利媒体的采访。近日,华为在心声社区公布了这次采访的圆桌纪要。在回答意大利媒体记者的提问中,任正非表示:“国际媒体对华为几乎都是负面报道,因为他…

MATLAB判断文件是否存在、删除文件

MATLAB判断文件是否存在: exist(output.txt,file) 如果output.txt存在,返回2,若不存在返回0 MATLAB删除文件: delete(output.txt);

Halcon算子学习:find_surface_model

find_surface_model ( : : SurfaceModelID, ObjectModel3D, RelSamplingDistance, KeyPointFraction, MinScore, ReturnResultHandle, GenParamName, GenParamValue : Pose, Score, SurfaceMatchingResultID) 在3D场景中找到一个表面模型的最佳匹配。 输入: Surf…

遗传算法学习笔记(一):常用的选择策略

简述 遗传算法(GA)是一种模拟生物进化自然选择过程的非确定性搜索方法,源于达尔文的进化论和孟德尔的遗传定律,由美国 Michigan 大学的 Holland教授在 20 世纪 70 年代首先提出。生物理论指出, 生物个体的各种生命表征是由许多基因共同决定的…

Nature指明大脑引流“废液”的确切路径

来源:中国生物技术网多年来,科学家们一直认为大脑中缺少淋巴系统,从而引发了液体、大分子和免疫细胞是如何被清除出去的问题。2015年,有两项小鼠研究证实,脑膜(保护大脑并维持其形状的覆盖物)的…

Halcon算子学习:distance_object_model_3d

distance_object_model_3d ( : : ObjectModel3DFrom, ObjectModel3DTo, Pose, MaxDistance, GenParamName, GenParamValue : ) 计算一个3D对象模型到另一个3D对象模型的点的距离。 输入: object_model_3d→(整数) 源3D对象模型的句柄。ObjectModel3DTo 目标3D对象…