Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在js文件中声明javascript对象。_Javascript_Html - Fatal编程技术网

在js文件中声明javascript对象。

在js文件中声明javascript对象。,javascript,html,Javascript,Html,我想在js文件中声明一个对象,如: var o={p:1} 然后在我的html文件中为它创建一个手表 <script> var o = {p:1}; o.watch("p",function (id, oldval, newval) { alert(newval); return newval; }); o.p=count; </script> var o={p:1}; o、 手表(“p”,功能(id、旧值、新值)

我想在js文件中声明一个对象,如: var o={p:1}

然后在我的html文件中为它创建一个手表

  <script>

  var o = {p:1}; 

  o.watch("p",function (id, oldval, newval)
  { 


  alert(newval);
  return newval; 
  }); 

  o.p=count;
  </script>

var o={p:1};
o、 手表(“p”,功能(id、旧值、新值)
{ 
警报(newval);
返回newval;
}); 
o、 p=计数;

这段代码在我的html中有效,但如果我在js文件中声明“var o”,它将不起作用。我之所以要这样做,是因为我想在js文件中修改对象的值,并在html中检测它。

我能想到的跟踪对象变量更改的唯一方法是使用setter func,而不是直接更新值:

<script type="text/javascript">
  var o = { 
    p:1,
    q:0,
    watches: [],
    setProp: function(prop, newVal) {
      var oldVal = this[prop];
      this[prop] = newVal;
      if(typeof(this.watches[prop]) == 'function')
      {
         this.watches[prop](prop, oldVal, this['prop']);
      }
    }
  }; 

  o.watches["p"] = function (id, oldval, newval) {
    alert(newval);
    return newval; 
  }; 

  o.setProp('p', count);
  o.setProp('q', 0 - count);
</script>

变量o={
p:1,
问:0,,
手表:[],
setProp:函数(prop,newVal){
var oldVal=此[prop];
这个[prop]=newVal;
if(typeof(this.watchs[prop])=='function')
{
这个.手表[道具](道具,旧的,这个[道具]);
}
}
}; 
o、 手表[“p”]=功能(id、旧值、新值){
警报(newval);
返回newval;
}; 
o、 setProp('p',计数);
o、 setProp('q',0-计数);

这是我能想到的最简单的方法,尽管您可能想在o中添加一些更好的错误检查或addWatch(prop,func)方法。

我能想到的跟踪对象变量更改的唯一方法是使用setter func,而不是直接更新值:

<script type="text/javascript">
  var o = { 
    p:1,
    q:0,
    watches: [],
    setProp: function(prop, newVal) {
      var oldVal = this[prop];
      this[prop] = newVal;
      if(typeof(this.watches[prop]) == 'function')
      {
         this.watches[prop](prop, oldVal, this['prop']);
      }
    }
  }; 

  o.watches["p"] = function (id, oldval, newval) {
    alert(newval);
    return newval; 
  }; 

  o.setProp('p', count);
  o.setProp('q', 0 - count);
</script>

变量o={
p:1,
问:0,,
手表:[],
setProp:函数(prop,newVal){
var oldVal=此[prop];
这个[prop]=newVal;
if(typeof(this.watchs[prop])=='function')
{
这个.手表[道具](道具,旧的,这个[道具]);
}
}
}; 
o、 手表[“p”]=功能(id、旧值、新值){
警报(newval);
返回newval;
}; 
o、 setProp('p',计数);
o、 setProp('q',0-计数);

这是我能想到的最简单的事情,尽管你可能想添加一些更好的错误检查或者一个addWatch(prop,func)方法o.

您最好将整个html代码发布到
标记下或
中。js
文件类似。您是否正在
.js
文件中添加
,并且在执行此操作时,您还可以包含整个CSS代码。您最好将整个html代码发布到
标记下或
中。js
文件是类似。您是否正在
.js
文件中添加
,并且在添加过程中,您还可以包含整个CSS代码。nb:这不是非常安全或可靠的代码。我不会按原样在生产中使用它,但会给您一个想法:)nb:这不是非常安全或可靠的代码。我不会按原样在生产中使用它,但会给您一个想法:)