Home = React.createClass({
render: function() {
<div>
<ComponentA />
<ComponentB />
<ComponentC />
<ComponentD />
</div>
};
});
ComponentA = React.createClass({
componentDidMount: function() {
window.addEventListener('scroll', this.handleScroll);
},
componentWillUnmount: function() {
window.removeEventListener('scroll', this.handleScroll);
},
handleScroll: function() {
var domElement = this.refs.domElement.getDOMNode();
this.inViewPort(domElement);
},
inViewPort: function(element) {
var elementBounds = element.getBoundingClientRect();
(elementBounds.top <= 769 && elementBounds.bottom >= 430) ? TweenMax.to(element, 1.5, { opacity: 1 }) : TweenMax.to(element, 1.5, { opacity: 0 });
},
render: function() {
return (/* html to render */);
}
});
您好,我正在尝试自学一些Java基础知识,我现在正在研究这个例子。在这里,我知道输出将是:4,8
但是,我不知道为什么这是输出,为什么第一个x出现为4而不是8?
如果我还将int x更改为其他内容,它也会使代码不兼容。我原以为,因为它似乎与x = 4参数不同,如果int x改变了也没关系?
如果int x在x = 4线上以某种方式依赖,为什么输出那么4,8而不是8,8?我不知道为什么x = 4对代码的其余部分有影响?
感谢您提前获取有关此问题的任何帮助。
答案 0 :(得分:6)
可能更容易看到逐行发生的事情:
int x = 8; // Declare your variable "x" and save 8 into it.
int y = x; // Assign the value of x to the new variable y.
// at this point, y = 8 and x = 8. Note that the value of
// x does not change.
x = 4; // Now set the value of x to 4. y is still 8 and x is now 4.
答案 1 :(得分:1)
在java中,当你使用等号时,如果你使用的是对象或原语,它可能意味着不同的东西。对象等于对象意味着第一个对象引用等于第二个对象引用 - 所以如果修改一个,则第二个对象引用也被修改。但是当你等于两个基元时,你将第二个值分配给第一个,所以当你修改一个时,第二个值保持不变。
答案 2 :(得分:0)
裁判现在问道:&#34;嘿,你x和y,你的衬衫是哪种颜色?&#34;。
你告诉黑人是x。 y告诉黄色。我的意思是4,8。
这只是我所知道的一个虚拟示例,但有时将现实生活示例与代码联系起来非常有用。
另外一件事,java有两个变量值类型。基元和参考文献。请看一下这个主题。如果您理解这一点非常好,那么您对此类代码片段毫无疑问。
答案 3 :(得分:-1)
为什么不应该有另一个输出而不是4,8
?在Java中,没有像C ++那样的参考概念,即使那样输出也是4,4
。所以你真正(唯一)做的是:
x
设为8
y
设置为8
,因为x
具有此值x
覆盖到4
而不更改y
上的任何内容,因为它们之间绝对没有关联x
和y
,因此:4,8