gpt4 book ai didi

javascript - Javascript 中原型(prototype)这个词的用途是什么?

转载 作者:行者123 更新时间:2023-12-02 17:13:55 25 4
gpt4 key购买 nike

Javascript中的原型(prototype)是否表示添加到对象的方法?我研究 Javascript 对象已经有一段时间了,有时我会看到世界原型(prototype)。

也许更好的问题是函数中何时使用原型(prototype)。默认情况下,我认为所有函数都有一个默认的原型(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 中声明对象有多种方法,但这似乎是最常见的方法。

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

<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>

最佳答案

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

使用原型(prototype)的示例:

var car = function(){
};

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

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

不使用原型(prototype)的示例:

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

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

关于javascript - Javascript 中原型(prototype)这个词的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24600772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com