Javascript watch.js快疯了
使用的浏览器端版本 在html标题中:Javascript watch.js快疯了,javascript,object,Javascript,Object,使用的浏览器端版本 在html标题中: <script type="text/javascript" src="S/watch.js"></script> 我一遍又一遍地发现这个错误: 未捕获类型错误:无法读取未定义的watch.js:345的属性“未定义” 错误显示来自此处-watch.js代码: var loop = function(){ for(var i in lengthsubjects){ var subj =
<script type="text/javascript" src="S/watch.js"></script>
我一遍又一遍地发现这个错误:
未捕获类型错误:无法读取未定义的watch.js:345的属性“未定义”
错误显示来自此处-watch.js代码:
var loop = function(){
for(var i in lengthsubjects){
var subj = lengthsubjects[i];
var difference = getObjDiff(subj.obj[subj.prop], subj.actual); <-watch.js:345
var循环=函数(){
for(长度主题中的var i){
var sub=长度受试者[i];
变量差异=getObjDiff(sub.obj[sub.prop],sub.actual);已修复!
在循环函数中,将所有内容包装在此
if(lengthsubjects.length!==0){}
因为如果您使用console.dir(lengthsubjects)
你会得到:
length: 0,
__proto__: Array[0]
下面是watch.js中第340-360行的变化:
var loop = function(){
if(lengthsubjects.length!==0){
for(var i in lengthsubjects){
//
var subj = lengthsubjects[i];
var difference = getObjDiff(subj.obj[subj.prop], subj.actual);
if(difference.added.length || difference.removed.length){
if(difference.added.length){
for(var j in subj.obj.watchers[subj.prop]){
watchMany(subj.obj[subj.prop], difference.added, subj.obj.watchers[subj.prop][j], subj.level - 1, true);
}
}
callWatchers(subj.obj, subj.prop, "differentattr", difference, subj.actual);
}
subj.actual = clone(subj.obj[subj.prop]);
}
}
};
您使用的浏览器是什么?google chrome版本30.0.1599.10 devYour这里的var是JSON符号。为了符合标准,您应该使用“
而不是”
。不知道这是否会影响watch.js
库,但值得一试,我想说……谢谢,我不知道……(虽然没有错误更改)@Joum你从哪里得到的?他们之间完全没有区别。
var loop = function(){
if(lengthsubjects.length!==0){
for(var i in lengthsubjects){
//
var subj = lengthsubjects[i];
var difference = getObjDiff(subj.obj[subj.prop], subj.actual);
if(difference.added.length || difference.removed.length){
if(difference.added.length){
for(var j in subj.obj.watchers[subj.prop]){
watchMany(subj.obj[subj.prop], difference.added, subj.obj.watchers[subj.prop][j], subj.level - 1, true);
}
}
callWatchers(subj.obj, subj.prop, "differentattr", difference, subj.actual);
}
subj.actual = clone(subj.obj[subj.prop]);
}
}
};