关于form导致的作用域变化问题

<!DOCTYPE html>
<html>
<head>
<title>任务18</title>
<meta charset="utf-8" />
</head>

<body>
<form id ="a">
<input type="text" id="in" />
<button id="left_in">左侧入</button>
<div id="number">显示data值</div>
</form>
</body>
<script type="text/javascript">
var a=0;
 document.getElementById(‘left_in‘).onclick = function(){
  a=1
  alert(a)
 };
 document.getElementById(‘number‘).onclick = function(){
  alert(a)
 };

</script>
</html>

由于button放在了form里,js操作的时候形成了闭包,故无法修改全局的a,每次第一个输出都是1,第二个输出总是0

时间: 2024-10-10 01:48:39

关于form导致的作用域变化问题的相关文章

AngularJS测试二 jasmine测试路由 控制器 过滤器 事件 服务

测试应用 1.测试路由 我们需要检测路由是否在运作,是否找到了,或者是404了.我们要确认路由事件触发了,预期的模板是否真的加载了.既然路由会改变页面的地址(URL)和页面内容,我们需要检测路由是否被加载了,页面是否找到了,在这中间发生了什么. 一段简单的路由代码: angular.module('myApp', ['ngRoute']) .config(function($routeProvider) { $routeProvider .when('/', { templateUrl: 'vi

angular+ 关于form表单监听变化

// 如果使用表单 loopholeForm: FormGroup; constructor( fb: FormBuilder, private modalRef: NzModalRef, private message: NzMessageService, private cveService: CveService ) { this.loopholeForm = fb.group({ loophole: [null], cveName: [null], cnnvdName: [null],

Divergent Change(发散式变化)---要重构的信号

“ 当你看着一个类说,呃,如果新加入一个数据库,我必须修改这三个函数:如果新出现一种金融工具,我必须修改这四个函数.那么,此时也许将这个类分成两个会更好,这么一来每个对象就可以只因一种变化而需要修改. ” 上述特征的名称叫做:Divergent Change.它表示,某个类经常因为不同的原因在不同的方向上发生变化.比如,上述的类,有两个原因,会导致这个类在两个不同的方向上发生变化. 我们认为,一个类,只会因为一种原因而导致变化,这才是好的.如果,这个类,会因为多种原因发生变化,那么,我们就要重构

把需求变化带来的代码修改成本降至最低的一种方法

为解决工作中一些繁琐的问题, 写了一个GUI程序, 操作界面是这个样子的 这个程序的实现起来并不是非常的繁琐, 但在界面的交互操作上, 也不仅仅只是展示数据. 如上面图片所见,列表中的每一条记录每一个数据项都需要可以填写和选择: 需要添加和删除记录:还需要调整记录的位置:向上移动.向下移动:要实现这些操作, 控制UI的程序其实挺复杂的. 我哼哧哼哧的把这个程序写完, 拿去给同事们演示使用方法, 同事们给我提出了不少的建议. 其中的一条是:把界面分割成上下两部份的方式替代列表中类型字段的选择, 以

js系列-3 js作用域与闭包

4,函数作用域中可用arguments来获取函数实参,arguments虽然可以通过下标访问,但它不是数组,原型不是Array.prototype. 它是实参的一个副本,通过arguments可模拟方法的重载.    function add(){        if(arguments.length == 1){           alert(1);        }        if(arguments.length == 2){           alert(2);        }

变量作用域、构造方法。

* * 构造方法(构造器):是一种特殊的方法,主要用于为成员变量初始化(为成员变量赋初始值). * 特征:方法名必须与类名相同,没有返回值类型.void也是一种返回值类型. * 语法: [修饰符] 类名([形参列表]) * *  * 构造方法使用new关键字调用. * 如果没有显式定义构造方法,虚拟机会自动添加无参构造, * 但是一旦显式定义了构造方法,虚拟机在编译时将不同添加无参构造(默认无参构造失效),如果需要调用无参构造就必须自己定义. * 构造方法是可以重载(方法名相同,参数列表不同).

javascript之作用域链

作用域链 作用域链是对象的集合,在代码的上下文里,他们提供给标识符进行查找的. 这个规则也很简单,类似于原型链:如果一个变量在它自己的作用域(自己的变量/激活对象)未找到的话,它会继续找它的 父变量对象,依次类推. 对于上下文,标识符有: 变量的名称,函数声明,形参,等等.当一个函数查找它代码的标识符,这个标识符不是本地的变量( 或本地函数,或一个形参),这个变量就就称为自由变量.那么查找这些自由变量就会使用到作用域链. 通常情况下,作用域链是所有的父变量对象的集合,加上(在这个作用域链最前面的

面对对象-变量的作用域

变量处于不同的位置,有不同的名称 分别是 :属性 参数 局部变量 不同名称的变量,其作用域是不一样的 属性: public class HelloWorld { int i = 1; int j = i; //其他的属性可以访问i public void method1(){ System.out.println(i); //方法1里可以访问i } public void method2(){ System.out.println(i); //方法2里可以访问i } }  参数: public

mfc控件自适应窗口大小,随窗口大小变化而变化

作为一个mfc的初学者,难免会遇到这样的问题,窗口可以改变大小,而其中的控件大小也随之改变,那怎么样去做呢. 1.对应窗口的属性Maximize Box和Minimize Box设置为true,从而能够使窗口最大化和最小化,Border属性设置为Resizing从而可以改变窗口的大小. 2.在消息有个WM_SIZE,添加函数OnSize,这样可以在函数内调整控件的大小,特别说明很多代码中利用当前控件比值与窗口大小比值再乘上当前窗口大小来改变控件大小,但是由于精度的问题,调整多次就会出问题,那么这