Javascript 我可以在变量上创建任何触发器吗?

Javascript 我可以在变量上创建任何触发器吗?,javascript,jquery,Javascript,Jquery,我在start页面上创建了一个变量,每当我更改该变量时,我都会调用一个方法。我想做一些事情,比如我给那个变量赋值,然后那个方法自动执行。作为代码参考,我在下面写一些东西 我不想每次都写两行,第一行用于给变量赋值,第二行用于调用方法。我只想写一行代码,它只用于赋值给变量,它会自动执行那个方法 请帮帮我 var SelectedUser = 0; function LoadInformation() { alert("Selected User is " + SelectedUser)

我在start页面上创建了一个变量,每当我更改该变量时,我都会调用一个方法。我想做一些事情,比如我给那个变量赋值,然后那个方法自动执行。作为代码参考,我在下面写一些东西

我不想每次都写两行,第一行用于给变量赋值,第二行用于调用方法。我只想写一行代码,它只用于赋值给变量,它会自动执行那个方法

请帮帮我

  var SelectedUser = 0;

function LoadInformation()
{
    alert("Selected User is " + SelectedUser);
}

function UpdateSelectedUser(){
    SelectedUser = 5;
}

您可以在javascript中使用setter,如下所示:

var obj = {
  fooVal: 'this is the value of foo',
  get foo() {
      return this.fooVal;
  },
  set foo(val) {
      //here goes your trigger
      alert("trigger");
      this.fooVal = val;
  }
}

obj.foo = 'hello';//<=here goes your one line to set variable
var obj={
fooVal:'这是foo'的值,
getfoo(){
返回此.fooVal;
},
设置foo(val){
//这是你的扳机
警报(“触发器”);
this.fooVal=val;
}
}

obj.foo='hello'// 您可以在javascript中使用setter,如下所示:

var obj = {
  fooVal: 'this is the value of foo',
  get foo() {
      return this.fooVal;
  },
  set foo(val) {
      //here goes your trigger
      alert("trigger");
      this.fooVal = val;
  }
}

obj.foo = 'hello';//<=here goes your one line to set variable
var obj={
fooVal:'这是foo'的值,
getfoo(){
返回此.fooVal;
},
设置foo(val){
//这是你的扳机
警报(“触发器”);
this.fooVal=val;
}
}
obj.foo='hello'// 使用对象。

代理对象用于定义基本代理的自定义行为 操作(如属性查找、赋值、枚举、函数 调用等)

显示代码

var targetVariable={};
var targetProxy=新代理(targetVariable{
设置:功能(目标、键、值){
console.log('Value changed');
目标[键]=值;
返回true;
}
});
targetProxy.hello_world=“test”//控制台:“值已更改!!”使用对象。

代理对象用于定义基本代理的自定义行为 操作(如属性查找、赋值、枚举、函数 调用等)

显示代码

var targetVariable={};
var targetProxy=新代理(targetVariable{
设置:功能(目标、键、值){
console.log('Value changed');
目标[键]=值;
返回true;
}
});

targetProxy.hello_world=“test”//控制台:“值已更改!!”因为您使用的是jQuery,所以可以轻松触发事件并附加自定义事件侦听器。例如,每次更改变量内容时都会触发
valueChanged
事件,如下所示:

var SelectedUser=0;
$(文档).on('valueChange',function()){
警报(“所选用户为”+所选用户);
})
函数UpdateSelectedUser(){
SelectedUser=5;
$('body')。触发器('valueChange'))
}
UpdateSelectedUser()

由于您使用的是jQuery,因此可以轻松触发事件并附加自定义事件侦听器。例如,每次更改变量内容时都会触发
valueChanged
事件,如下所示:

var SelectedUser=0;
$(文档).on('valueChange',function()){
警报(“所选用户为”+所选用户);
})
函数UpdateSelectedUser(){
SelectedUser=5;
$('body')。触发器('valueChange'))
}
UpdateSelectedUser()

您好,欢迎来到stack overflow,您有很多方法可以做到这一点。。但是为了确定什么是最适合您的方法,您是否可以告诉我们您是否使用ES6?打字稿?ES5?您有很多案例都有相同的行为吗?setter可以工作:您好,欢迎来到stack overflow,您有很多方法可以做到这一点。。但是为了确定什么是最适合您的方法,您是否可以告诉我们您是否使用ES6?打字稿?ES5?您是否有许多案例具有相同的行为?setter可以工作: