关于Javascript的继承实现有很多问题,虽然我没有找到答案为什么原型,在我看到的所有示例和答案中,都是在&#之外声明的34;类&#34 ;.此外,似乎无法使用this.prototype
,这似乎与OOP背景的人不直观。
之间有什么区别:
function AClass() {
AClass.prototype.AMethod = function(parms) { };
}
和
function AClass() { }
AClass.prototype.AMethod = function(parms) { };
答案 0 :(得分:3)
差异与您可能放在函数内部或函数外部的任何其他语句完全相同。如果它在函数内部,则在调用函数时运行。
重新定义部分"类"没有意义。每次从它实例化一个对象。
答案 1 :(得分:1)
每次拨打AClass
时,如果将AMethod
放入功能范围内,则会重新定义imageView1 = (ImageView) findViewById(R.id.image1);
imageView2 = (ImageView) findViewById(R.id.image2);
imageView3 = (ImageView) findViewById(R.id.image3);
View.OnClickListener listener= new View.OnClickListener() {
@Override
public void onClick(View v) {
TranslateAnimation animation = new TranslateAnimation(0, 0, 0, 50);
animation.setDuration(1000);
animation.setFillAfter(false);
animation.setAnimationListener(new MyAnimationListener());
if(v==imageView1)
imageView1.startAnimation(animation);
else if(v==imageView2)
imageView2.startAnimation(animation);
else if(v==imageView3)
imageView3.startAnimation(animation);
x += 0;
y += 50;
}
};
imageView1.setOnClickListener(listener);
imageView2.setOnClickListener(listener);
imageView3.setOnClickListener(listener);
。它减慢了代码速度。当您要创建具有重复功能的许多对象时,原型非常有用。以下是更详细研究相关讨论的类似问题Use of 'prototype' vs. 'this' in JavaScript?。