3

我正在学习 JavaScript。我对以下两个新创建的对象继承属性的符号感到困惑。它们有什么不同,我应该什么时候使用它们?

代码 1:

 var Vehicle = function Vehicle() {
       this.wheel=2
    }

    var vehicle = new Vehicle();
    alert(vehicle.wheel);

代码 2:

 var Vehicle = function Vehicle() {
    }
    Vehicle.prototype.wheel = 4;
    var vehicle = new Vehicle();
    alert(vehicle.wheel);

什么时候使用关键字prototype

4

3 回答 3

4

在原型上定义的属性将由所有实例共享。因此,如果您创建 10 辆汽车,它们只是共享车轮属性(只有一个),而每辆汽车本身并没有车轮属性。

于 2013-09-18T06:21:42.403 回答
2

最重要的区别是,当您将属性添加到函数的原型并从中实例化一个新对象时,该属性是在新对象中通过加强继承链而不是直接在对象上访问的。

于 2013-09-18T06:19:55.800 回答
0

你需要阅读原型,stackoverflow中有很多线程,做一点搜索。例如阅读这篇文章。或者找一本最好的学习方法的书,我推荐这本很棒的书,JavaScript: The Good Parts

一般来说,就内存消耗和可扩展的原型链而言,使用原型要好得多。

于 2013-09-18T06:23:58.887 回答