在构造函数中创建 JavaScript 原型(prototype)

标签 javascript oop prototype

当您在构造函数中添加对象的原型(prototype)时,内存中会发生什么?每次创建新对象时它都会重新创建吗?

例如:

function Foo(){
  Foo.prototype.bar = function() {
    console.log("bar func called");
  }
}    
var x = new Foo();
x.bar();
var y = new Foo();
y.bar();

最佳答案

代码的“性质”并不重要,每次调用它时都会执行它。这意味着,是的,每次调用 new Foo() 时,原型(prototype)的函数 bar 都会被重新分配。

这也意味着每个 Foo 对象都会获得一个新的 bar 方法,即使是那些已经存在的方法。

关于在构造函数中创建 JavaScript 原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25127161/

相关文章:

java - Java 代码中的 NullPointerException

ruby-on-rails - 得墨忒耳法则 : create delegates to access attributes on associated objects or not?

javascript - 原型(prototype)继承未按预期工作

javascript - 多维数组——如何获取一个值

javascript - 我怎样才能让谷歌地图标记和阴影一起反弹?

Python - 传递对象引用?

javascript 原型(prototype)链 : Rectangle. 原型(prototype) = new Shape() 或 Rectangle.prototype = Shape?

javascript - 如何使用 Javascript 或 ajax 在文本字段中实时注入(inject)或添加输入字段的值?

javascript - AngularJS ng-repeat over data with # keys

javascript - 在 JavaScript 中重写数组字面量