谁能告诉我为什么在使用JavaScript时为什么使用.prototype.
我在使用Google Map API时会遇到这种情况。
在其中(仅作为示例),我们仅在类为google.maps.Marker.prototype.setPosition的情况下使用google.maps.Marker

最佳答案

(已修改)我们为什么要使用google.maps.Marker.prototype.setPosition


简而言之,使用new google.maps.Marker(/* params */)创建的任何对象都可以访问在那里定义的setPosition属性(除非被覆盖):

google.maps.Marker.prototype.setPosition = function() { return 42; }

var x = new google.maps.Marker();
x.setPosition(); // 42

var y = new google.maps.Marker();
y.setPosition(); // 42

x.setPosition = function() { return 'Overriden only for x'; };
x.setPosition(); // Overriden only for x
y.setPosition(); // 42


它的机制在MDN上进行了说明。其要点是new创建一个对象(通过原型链)继承构造函数的prototype属性。

08-04 08:28