在Javascript中用于原型的单词是什么?

What is the word prototype used for in Javascript?

本问题已经有最佳答案,请猛点这里访问。

javascript中的原型是否表示添加到对象中的方法?我研究对象JavaScript有一段时间了,有时我会看到世界原型。

也许更好的问题是函数中使用的原型是什么时候。默认情况下,我认为所有函数都有一个默认的原型属性,这就是对象中使用的属性。函数就像C++或Java中的类一样被创建。然后使用new关键字创建由函数组成的类。

代码在这里:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
        },

代码在这里:

1
     var pressedKeys = {};

这是一个简单的对象声明,对吗?我认为有几种方法可以用JavaScript声明对象,但这似乎是最常见的方法。

更多代码:在下面的代码中,是否会使用原型属性。我只是不确定为什么以及应该在哪里使用原型属性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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();


原型链是如何将一个方法与给定的类型相关联,而不仅仅是一个对象的特定实例。出于性能原因,这是有益的,因为您不必为每个实例重新定义方法,因为它在类型级别定义了一次。

使用原型的示例:

1
2
3
4
5
6
7
var car = function(){
};

car.prototype.start= function(){
};

var myCar = new car();//all car objects will have the start function defined.

未使用原型的示例:

1
2
var car = {};
car.start = function(){};

这里最大的区别是第二个示例没有利用原型,而是只将start方法附加到当前实例。在第一个示例中,所有创建的实例都可以访问start方法。