JSON损坏的属性
JSON corrupted attributes
我很难理解Javascript的行为。
代码:
function getPosition(element){
var position = {
x:$(".line div").has(element).index(),
y:$(".line").has(element).index()
};
console.log(position.y);
console.log(position)
return position;
}
现在,当从函数调用它时,我得到的结果如下:
0
Object
x: 8
y: 3
我不明白的是,当试图通过对象引用而不是直接访问对象时,怎么可能更改对象属性。
但当我从控制台调用相同的函数时,我得到的是:
0
Object
x: 8
y: 0
这是传递给函数的相同元素。当X或Y为0(零)时,它似乎总是失败,当它是另一个数字时,它是可以的
有人能解释一下我做错了什么吗?或者是某种JS错误?无
编辑:
所以我终于发现问题出在哪里了。我一直认为我在传递价值观,但不幸的是,我一直都错了。在stackoverflow上的一些搜索中,我发现了关于JS值和引用的主题。
如果有人感兴趣又懒得读这个话题,你可以看看这个例子。这几乎是不言自明的。
function test(){
var a = 5;
var b = a; //b now has value of 5
console.log("a:"+a+":b:"+b);
b = 4;//a still has value of 5 and b is assinged to 4
console.log("a:"+a+":b:"+b);
var c = {val:1};
var d = c; //d now has reference to c
d.val = 2; //c.val changes because it is a reference
console.log(c);
}
第2版:哦,顺便问一下,我怎么能把我的问题标记为已回答?
console.log
延迟将值转换为字符串,直到应用程序速度减慢,这样日志记录就不会不必要地减慢应用程序的速度。
如果console.log(position)
显示的值与调用console.log
时的值不同,则是因为position
在调用和控制台小部件决定格式化该值以供显示之间已被修改。
您可以通过尝试以下HTML来看到这一点:
<script>
// Emits the JSON form when converted to a string.
var obj = {
x: 1,
toString: function () {
return JSON.stringify(this);
}
};
console.log(obj); // Often {x:2}
console.log("" + obj); // Reliably {x:1}
obj.x = 2;
</script>
寻找类似的代码
obj = getPosition(...);
...
obj.y = <expression that evaluates to zero>
或者,您可以通过更改来强制进行急切的格式化
console.log(position)
至
console.log("" + position)
所以我终于发现了问题所在。我一直认为我在传递价值观,但不幸的是,我一直都错了。在stackoverflow上的一些搜索中,我发现了关于JS值和引用的主题。
如果有人感兴趣又懒得读这个话题,你可以看看这个例子。这几乎是不言自明的。
function test(){
var a = 5;
var b = a; //b now has value of 5
console.log("a:"+a+":b:"+b);
b = 4;//a still has value of 5 and b is assinged to 4
console.log("a:"+a+":b:"+b);
var c = {val:1};
var d = c; //d now has reference to c
d.val = 2; //c.val changes because it is a reference
console.log(c);
}
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在选项卡上定义属性'的主窗口对象
- 锚点元素的href属性自动更改
- jQuery最近父级的数据属性选择器
- JSON损坏的属性