|
|
1
2
然而,如果你设法在y.z()之前定义x;那么x()将是当时定义的任何值。 根据您的语句,以下代码执行类似的操作。
|
|
|
2
1
重命名可能会更清楚
|
|
3
1
很难理解的是,在JavaScript(以及许多其他动态解释语言)中,函数也是“一等公民”。它们可以像任何其他变量一样被操纵。 也许它可以帮助将JavaScript函数可视化为包含代码的字符串。当使用()语法调用时,JavaScript会执行字符串中的代码。但除此之外,它们可以像任何其他sting变量一样被操纵。 虽然这种类比并不完美(字符串和函数之间实际上有很多不同),但最初理解这种函数变量对偶性可能会有所帮助。 |
|
|
4
1
x是一个变量,因为它的作用域在分配给y.z的函数之外,所以可以在y.z内部访问 该代码中发生的事情是,y被初始化为一个类型为'w'的新类,然后x被设置为对当前'z'函数的引用,该函数是类'w'实例'y'的成员。然后,函数'z'被一个新函数替换,该函数调用doOneThing,然后执行'x'的值,该值已经建立为'y.z'的先前值,因此 新 y.z扩展了 老的 在它返回之前,只需简单地调用旧的y.z即可。 我希望这是有道理的。 当然,假设你确实说“y”对象没有“z”成员,那么x将是未定义的,当你尝试执行x()时,将抛出运行时错误。 |
|
|
5
0
看起来他们试图重载w.z()方法,但这很奇怪,因为你说z()不存在。考虑到这种可能性,我会这样写代码:
这归结为同样的事情,但可以避免抛出错误。 |
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |