为什么某些 JavaScript 变量通过在变量名称后放置 0 来访问
Why are some JavaScript variables accessed by placing a 0 right after the variable name?
假设你有一个对象文字:
var d = {
x: +'35',
y: '25'
};
还有一个匿名函数:
function (d) {
return d.y0 + d.y;
}
当我尝试这段代码时,我得到"未定义"代替 d.y0。但是有很多 d3.js 代码通过将 0 附加到其键来访问值。这个 0 有什么作用?
在 JavaScript 中,除非d
有一个名为 y0
的属性,否则d.y0
是未定义的。我不熟悉 d3,但如果它使用纯 JavaScript,那么他们可以使用附加 0 引用属性的唯一方法是他们引用属性的对象具有该名称的属性。
从您的链接中查看 javascript 源代码,y0 是 d3 中使用的内部名称,用于引用数据集合中第一个点的 y 坐标,例如:
function d3_svg_lineBundle(points, tension) {
var n = points.length - 1;
if (n) {
var x0 = points[0][0],
// Here
y0 = points[0][1],
或
function d3_svg_lineBasis(points) {
if (points.length < 3) return d3_svg_lineLinear(points);
var i = 1,
n = points.length,
pi = points[0],
x0 = pi[0],
// Here
y0 = pi[1],
将"0"附加到属性名称绝对没有什么特别之处!
代码示例来自以下 js 文件:http://mbostock.github.com/d3/d3.js?1.29.1
相关文章:
- AngularJS-在JSON选择器中使用变量名
- 命令行中的Uglify js;不要弄乱变量名
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- 像createComment这样的各种自定义变量名在内联javascript中被覆盖,但在外部js中没有.为什么?
- 查询后websql成功回调无法访问变量
- 这在JavaScript中是一个好的变量名吗
- 在javascript中,在变量名之前使用var有什么区别/优势吗
- 在Javascript中连接一个动态变量名
- 如何使用jQuery循环变量名
- JavaScript将字符串转换为变量名
- 无法访问变量
- 如何在javascript中访问函数内部的相同变量名
- 按字面变量名访问变量(eval和likes除外)
- 我无法使用变量名访问对象函数
- Javascript访问对象的变量名
- 变量名来访问嵌套的对象键
- 通过另一个变量名访问对象的数据
- 访问属性名在变量中的对象属性
- 如何在DOM中通过变量名访问对象的键
- 访问Javascript中变量名中的计数器(内部代码)