JavaScript 方法和副本

标签 javascript methods copy

当您在构造函数中创建一个方法时,如下所示:

var Something = function() {
    this.doSomething = function() {/* do something here */};
};

每次使用 Something 构造函数创建新对象时,Javascript 都会复制 doSomething 的副本。
但是当你这样做时:

var Something = function() {

};
Something.prototype.doSomething = function() {/* Do something here */};

每次使用 Something 构造函数创建对象时,javascript 是否仍然会复制 doSomething ,或者在每个对象中都生成 doSomething 吗为了效率而引用相同的东西?

最佳答案

您可以自己轻松测试,只需运行:

var a = new Something();
var b = new Something();
console.log(a.doSomething === b.doSomething);

如果您在原型(prototype)中定义方法,console.log 应该打印 true

无论如何,对于 JavaScript 的所有内容,我建议浏览 MDN,因为它对大多数主题都提供了非常好的介绍。 CSS 和 HTML 也是如此。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

关于JavaScript 方法和副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43808932/

相关文章:

iphone - 为什么 XCode 每次都会将资源复制到 iDevice,即使它们仍未更改?

javascript - Eloquent JavaScript :

javascript - 将覆盖的透明 div 转换为其背景图像

Java - 方法声明中的类名,返回类型应该是

ios - 如何在 Objective-C 中使用 dlib 的 shape_predictor?

java - 在方法之前或内部检查因变量的最佳实践

msbuild - 无法让 MSBuild 社区任务 RegexReplace 工作

java - Android 免费应用程序中的复制保护

javascript - 使用await作为参数

javascript - 我如何将url id参数传递给mvc2中的javascript