Javascript中的原型是否表示添加到对象的方法?我一直在研究对象Javascript一段时间,有时候我会看到世界原型。
也许更好的问题是函数中使用的原型是什么时候。默认情况下,我认为所有函数都有一个默认的prototype属性,该属性是对象中使用的属性。创建函数就像C ++或Java中的类一样。然后使用NEW关键字创建由函数构成的类。
代码在这里:
function Sprite(url, pos, size, speed, frames, dir, once) {
this.pos = pos;
this.size = size;
this.speed = typeof speed === 'number' ? speed : 0;
this.frames = frames;
this._index = 0;
this.url = url;
this.dir = dir || 'horizontal';
this.once = once;
};
Sprite.prototype = {
update: function(dt) {
this._index += this.speed*dt;
},
代码在这里:
var pressedKeys = {};
这是对象的简单声明,对吗?我认为有几种方法可以在Javascript中声明一个对象,但这似乎是最常见的方式。
更多代码:在以下代码中将使用原型属性。我不确定应该使用原型属性的原因和原因。
<script>
function MyObject1() {
this.a = 1;
this.b = 2;
this.myMeth = function Fart() {
alert("hello");
}
}
var a = new MyObject1();
var b = new MyObject1();
document.writeln(a.a);
document.writeln(b.a);
a.myMeth();
</script>
答案 0 :(得分:2)
原型链是将方法与给定类型相关联的方式,而不仅仅是对象的特定实例。 由于您不必为每个实例重新定义该方法,因为它在类型级别定义了一次,这对于性能原因是有益的。
使用原型的例子:
var car = function(){
};
car.prototype.start= function(){
};
var myCar = new car();//all car objects will have the start function defined.
未使用原型的示例:
var car = {};
car.start = function(){};
这里最大的区别是第二个例子没有利用原型,而只是将start方法添加到当前实例。 在第一个示例中,所有创建的实例都可以访问start方法。