首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我在add函数中添加提交函数时,为什么this程序不起作用?

当在add函数中添加提交函数时,如果this程序不起作用,可能是因为this的指向发生了变化。在JavaScript中,this的指向是动态的,取决于函数的调用方式。

常见的导致this指向变化的情况有:

  1. 函数作为对象的方法调用时,this指向该对象。
  2. 直接调用函数时,this指向全局对象(浏览器环境下为window对象,Node.js环境下为global对象)。
  3. 使用call、apply或bind方法显式指定this的值。
  4. 箭头函数中的this指向定义时所在的作用域,而不是调用时的作用域。

针对这个问题,可以尝试以下解决方案:

  1. 确保add函数被正确调用,并且this指向期望的对象。可以通过在调用add函数时使用对象的方法调用方式,例如obj.add(),确保this指向obj对象。
  2. 如果add函数是作为普通函数直接调用的,可以使用箭头函数来定义add函数,箭头函数中的this会继承外层作用域的this值,避免this指向发生变化。
  3. 如果需要在add函数中使用提交函数,可以将提交函数定义为add函数的内部函数,这样提交函数可以访问到add函数的作用域,并且不会改变this的指向。

需要注意的是,以上解决方案是基于一般情况下的推荐做法,具体的解决方法还需要根据具体的代码和上下文来确定。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux+Windows: 程序崩溃 C++ 代码,如何获取函数调用栈信息

一、前言 二、Linux 平台 三、Windwos 平台 一、前言 程序执行过程 crash 是非常严重的问题,一般都应该在测试阶段排除掉这些问题,但是总会有漏网之鱼被带到 release 阶段。...因此,程序的日志系统需要侦测这种情况,代码崩溃的时候获取函数调用栈信息,为 debug 提供有效的信息。...这篇文章的理论知识很少,直接分享 2 段代码: Linux 和 Windows 这 2 个平台上,如何用 C++ 来捕获函数调用栈里的信息。 二、Linux 平台 1...."SIGABRT"}, {SIGFPE, "SIGFPE"}, {SIGILL, "SIGILL"}, {SIGSEGV, "SIGSEGV"} // 可以添加其他信号...利用以上几个神器,基本上可以获取到程序崩溃函数调用栈信息,定位问题,有如神助! ----

5.7K20

vuekeep-alive、activated的探讨和使用「建议收藏」

" id="add" @click="add">添加子元素 export default { data() { return...但如果该组件没有使用缓存,也就是没有被包裹的话,activated是不起作用的。我们直接来试一下就知道了。...我们可以看到 执行components1候其是执行了activated钩子函数的,而components2则没有,因为components2并没有被包裹,所以其并不会激活该钩子函数...当我们再切换一次路由的时候又发现了神奇的地方 组件1只执行activated钩子钩子函数,而组件2则把创建和挂载的钩子函数都执行了。...简单的说activated()函数就是一个页面激活后的钩子函数,一进入页面就触发; 所以当我们运用了组件缓存,如果想每次切换都发送一次请求的话,需要把请求函数写在activated,而写在created

1.3K10
  • Vue 选手转 React 常犯的 10 个错误,你犯过几个?

    但是,它并不起作用当我们输入一个项目并提交表单,该项目没有被添加到购物清单。 问题就在于我们违反了也许是 React 中最核心的原则 —— 不可变状态。...当我们把一个项目推入一个数组,我们并没有改变该数组的地址,所以 React 无法判断该值已经改变。...总是将它们包装到代理,或者初始化时像许多“反应式”解决方案那样做其他工作。这也是为什么 react 允许您将任何对象置于状态(无论有多大)而没有额外的性能或正确性陷阱。...通过在用户提交表单动态生成一个ID,我们保证了购物清单的每一个项目都有一个唯一的ID。...而在 JavaScript , async...await 会让程序等待异步任务完成后才会继续执行。

    22910

    pyinstaller打包找不到文件的问题解决

    ,然后再运行的,所以会导致这种问题 比如,当你程序里面调用一个外部exe,但却提示找不到该exe文件。...有两种方法: 1、直接用参数添加: --add-data "nginx.exe;."...完整命令:pyinstaller -F main.py --add-data "nginx.exe;." 2、spec文件添加: 每次执行pyinstaller打包命令后会生成spec文件,打开它...问题来了: 诸如open(‘xxx.txt’)这些操作文件的函数,一般首先都是工作路径查找你所指定的文件的。 所以,当我们直接这样执行已打包的外部文件程序会报找不到文件!...test\gg.exe')) 第一句打印会显示完整的解压路径: C:\…\temp\asdqwezxc\ 第二句打印是这样的: C:\…\temp\asdqwezxc\test\gg.exe 所以当我调用已打包的外部文件

    9.7K40

    Python 架构模式:第五章到第九章

    由于我们的服务函数添加端点很容易,只需要一点 JSON 处理和一个函数调用: 用于添加批次的 API(entrypoints/flask_app.py) @app.route("/add_batch"...添加产品聚合 为什么?让我们找出原因。...每当我们更新系统的状态,我们的代码需要确保我们不会破坏不变量,即可用数量必须大于或等于零。 单线程、单用户的应用程序,我们相对容易地维护这个不变量。...正如你将在稍后处理工作单元模式处理事件所看到的,必须同时考虑事件和异常是令人困惑的。 消息总线将事件映射到处理程序 消息总线基本上是说:“当我看到这个事件,我应该调用以下处理程序函数。”...② 当我们开始处理我们的第一个事件,我们启动一个队列。 ③ 我们从队列的前面弹出事件并调用它们的处理程序(HANDLERS字典没有改变;它仍将事件类型映射到处理程序函数)。

    34910

    django后台添加学生-jquery实现表单正则表达式验证,判断是否可以进行提交

    话不多说,先放图 左边的导航就不放代码了,需要再问 (1)视图模板 (2)路由(urls.p) (3)views.py # GET:向服务器 获取 数据 # POST:向服务器 提交 数据 # 添加学生...def add_stu(request): # 当浏览器访问该网址,其实就是向服务器获取数据,所以打开这个页面 if request.method == "GET":...,模型跟我不一样也没事,后面的正则对就行 # 应用student的model.py,定义StudentInfo模型,该模型继承models.Model类 class StudentInfo(models.Model...) { $(ele).blur(function() { // add.test(this.value) add是正则表达式,是用test函数正则验证,this.value...// 如果有的输入表单没有验证成功会禁用,这个在后面点击提交事件写了 $('.sub').removeAttr('disabled')

    10210

    年后跑路第一战,从Java泛型学起!

    在这种情况下,我们必须将所有泛型类型添加到方法签名。...否则会导致编译错误。 泛型中使用通配符 Java,通配符由?表示,我们使用它们来指代未知类型。通配符对泛型特别有用,可以用作参数类型。 首先,我们知道Object是所有 Java 类的超类。...类型擦除 Java 添加了泛型以确保类型安全。并且为了确保泛型不会在运行时造成开销,编译器在编译对泛型应用了一个称为类型擦除的过程。...例如,以下不能编译: List list = new ArrayList(); list.add(17); 要理解基本类型为什么不起作用,让我们记住泛型是一个编译特性,这意味着类型参数被删除并且所有泛型类型都实现为类型...泛型在编译强制类型正确,最重要的是,可以实现泛型算法而不会对我们的应用程序造成任何额外开销。

    71030

    List.append() Python 不起作用,该怎么解决?

    列表是一个有序的集合,可以包含不同类型的元素,并且可以进行添加、删除和修改等操作。 Python ,我们通常使用 List.append() 方法向列表末尾添加元素。...列表作为函数参数另一个导致 List.append() 方法不起作用的常见情况是将列表作为函数的参数传递。 Python 函数参数传递是通过对象引用实现的。...4)print(my_list) # 输出 [1, 2, 3, 4]在这个例子,我们定义了一个函数 add_element(),它接受一个列表参数 lst 和一个元素参数 element。...函数内部,我们对 lst 调用了 append() 方法,将 element 添加到列表末尾。由于函数参数传递是通过引用实现的,所以对 lst 的修改会影响原始列表 my_list。3....结论List.append() 方法 Python 通常是一个方便且常用的方法,用于向列表末尾添加元素。然而,当遇到某些情况,它可能不起作用

    2.7K20

    Git和gdb的使用

    (Gitee也有这个文件,不过隐藏了无法看到) 3.Git三板斧 如果你没有的服务器还没有安装Git就使用sudo yum install -y git安装 a.添加(将文件放至暂存区) git add...要在你的仓库目录下才可以提交,并且只能提交你仓库目录下的文件。 使用添加命令以后并没有直接给你上传到Gitee,只是将内容暂存到了一个临时区域。...b.提交(将暂存区文件添加到.git仓库) git commit -m '测试提交' 首次使用git commit,会要求你输入你Gitee的的账户名和邮箱 -m选项后面跟的是提交日志,这个可不能乱写哦...Gitee上不存在的文件,第一次提交必须走完三板斧。...前面刚说gdb是Linux下的调试器,为什么这里又不能调试? 这是因为程序有两个版本,分别是release和debug。

    43800

    【Linux】常用工具(下)

    当我工作区需要将我们的代码送到远程仓库,首先先要将我们的代码 git add 到暂存区,此时我们需要执行 git add 命令,如下图: 仅需要执行这一句命令,就可以使工作区的 study5 送到暂存区...,此时我们可以使用命令 git status 查看此时仓库的状态,如下: 说明已经 add 成功,此时需要将我们的代码提交到版本库。...4. git commit 当我们的代码已经暂存区后,我们需要将它提交到版本库,此时就需要执行以下命令: git commmit -m "这里写上日志" 注意这里必须加上 -m....假设我们将上面所写的进度条提交到版本库,如下: 我们还可以使用 git log 命令查看我们所提交的日志;当我们将代码提交到版本库后,我们此时还有最后一步就可以将我们的代码上传到远程仓库了。...必须在源代码生成二进制程序的时候, 加上 -g 选项;如下我们在编辑 Makefile 文件,在建立依赖方法需要给可执行程序加上 -g 选项: 此时我们退出 Makefile,执行 make,然后对

    20010

    Angularsweetalert弹框的使用详解

    所以我就想办法将sweetalert用到项目中,项目中引入sweetalert,遇到诸多问题,但最终我不懈坚持下,都解决了,实现了效果。具体用法请看下文。...添加依赖模块‘oitozero.ngSweetAlert’ 四、使用方法 1、基础用法 swal("请选中数据再进行操作"); ?...点击取消执行else的方法 ? 点击确定直接执行函数 ?...五、相关问题 1、传函数错误 Swal(“确定提交吗”,  function(){}, ‘error’ );  //这种写法我用的这个版本是错误的,我的这个版本支持then(), 不支持直接在参数写方法...2、API问题 在这个版本以下写法只能实现title和text的效果,其他属性都不起作用 1 swal({ 2 title: "确定删除吗?"

    2.8K40

    vuex 使用文档

    Vue 组件获得Vuex 状态。     由于Vuex的状态存储是响应式的,从store 实例读取状态最简单的方法     就是计算属性返回某个状态。     ...// 单独构建的版本辅助函数为 Vuex.mapState       import { mapState } from 'vuex'         export default {           ...,那么当我们变更状态,监视状态的vue更新 ,这也意味值Vue 的mutation 也需要与使用 Vue 一样遵守一些注意事项。       ...$store.commit('increment')           })         }       ])       }     } Actions        mutation 混异步调用会导致你的程序很难调试...来获取 state 和 getters 当我之后介绍到Modules,     你就知道 context 对象为什么不是store 实例本身了。

    1.7K100

    教你如何在 React 逃离闭包陷阱 ...

    JavaScript、作用域和闭包 让我们从函数和变量开始,当我 JavaScript 声明一个普通函数或者尖头函数会发生什么呢?...每个闭包在创建都是冻结的,当我们第一次调用 something 函数,我们创建了一个值变量包含 "first" 的闭包。然后,我们把它保存在 something 函数之外的一个对象。...当我们试图访问存储 Ref 函数内部的 state 或 props ,我们只能得到它们的初始值: const Component = ({ someProp }) => { const [state...我们 onClick 的值从未更新过,你能告诉我为什么吗? 当然,这又是一个过期闭包。当我们创建 onClick ,首先使用默认状态值(undefined)形成闭包。...因此,当我们更改 useEffect ref 对象的 current 属性,我们可以 useCallback 访问该属性,这个属性恰好是一个捕获了最新状态数据的闭包。

    61340

    LSTM的简单介绍,附情感分析应用

    递归神经网络(RNN) 对于人类来说,当我们看电影,我们在理解任何事件不会每次都要从头开始思考。我们依靠电影中最近的经历并向他们学习。...为什么RNN在这里不起作用 RNN训练期间,信息不断地循环往复,神经网络模型权重的更新非常大。因为更新过程累积了错误梯度,会导致网络不稳定。极端情况下,权重的值可能变得大到溢出并导致NaN值。...为了克服梯度消失问题,我们需要一个二阶导数趋近零点之前能维持很长距离的函数。tanh是具有这种属性的合适的函数为什么要使用Sigmoid?...然后将这个新的记忆添加到旧记忆c(t-1),以给出c(t)。我们的例子,对于新的输入,他有一个女性朋友玛丽亚,玛丽亚的性别将被更新。...结论 当我们希望我们的模型从长期依赖中学习,LSTM要强于其他模型。LSTM遗忘,记忆和更新信息的能力使其比经典的RNN更为先进。

    1.8K60

    Spring声明式事务的一个注意点及原理简析

    而要将事务管理代码从整个业务逻辑抽离出来,提供系统性的服务,就要使用Spring aop,使用过程,我们千万不可忘记了其动态代理的实质,不然使用过程你会不知不觉掉进陷阱里,请看以下例子: (1)...添加订单后数据: ? 抛出异常,事务回滚,操作后表记录未变。...为什么orderService的addOrderWrapper()方法内部调用addOrder(),报运行时异常就不会回滚了呢?...实际上,第一种情况程序是通过orderService的代理类上调用addOrder()方法的,这样,与该方法相关的拦截器就会对请求进行拦截处理,提供相应的事务处理机制;而在第二种情况下,addOrder...若方法声明了相应的事务控制信息,它会在该方法执行前开启一个事务,完成提交事务,发生异常回滚事务,至于其中的具体规则(传播,隔离级别,超时时间,是否只读,针对何种异常进行回滚),可以通过xml或者@Transactional

    59160

    Spring声明式事务的一个注意点及原理简析

    而要将事务管理代码从整个业务逻辑抽离出来,提供系统性的服务,就要使用Spring aop,使用过程,我们千万不可忘记了其动态代理的实质,不然使用过程你会不知不觉掉进陷阱里,请看以下例子: (1)...添加订单后数据: ? 抛出异常,事务回滚,操作后表记录未变。...为什么orderService的addOrderWrapper()方法内部调用addOrder(),报运行时异常就不会回滚了呢?...实际上,第一种情况程序是通过orderService的代理类上调用addOrder()方法的,这样,与该方法相关的拦截器就会对请求进行拦截处理,提供相应的事务处理机制;而在第二种情况下,addOrder...若方法声明了相应的事务控制信息,它会在该方法执行前开启一个事务,完成提交事务,发生异常回滚事务,至于其中的具体规则(传播,隔离级别,超时时间,是否只读,针对何种异常进行回滚),可以通过xml或者@Transactional

    81330

    Django form.save 方法的详细分析

    它的功能和实现可以分为几个重要的部分,下面就是我对 form.save() 方法的详细分析:1、问题背景 Django ,我们经常会使用 Form 来处理用户提交的数据。... Form ,我们可以定义不同的字段,并对这些字段进行验证。当用户提交数据,Form 会对数据进行验证,如果验证通过,则会调用 Form 的 save 方法来保存数据。...2、解决方案2.1 示例假设我们有一个添加/编辑产品的表单(其中字段 user 是外键,指向我们的 User 模型),并将其作为两个独立视图函数的触发器 - add / edit:def product_add...2.4 编辑和保存新产品的区别当我们编辑和保存新产品,save 方法的调用方式是一样的。...添加新产品,我们不需要传递 instance 参数,因为 save 方法会自动创建一个新的对象。

    12410
    领券