javascript - javascript中的构造函数和原型(prototype)

标签 javascript

这两个代码有什么区别,我应该使用哪一个?

function Test() {}
Test.method = function() {};

带有原型(prototype):

function Test() {}
Test.prototype.method = function() {};

最佳答案

第一种情况:静态方法。

function Test() {}
Test.method = function () { alert(1); };
var t = new Test;
Test.method(); // alerts "1"
t.method(); // TypeError: Object #<Test> has no method 'method'

第二种情况:实例方法。

function Test() {}
Test.prototype.method = function () { alert(1); };
var t1 = new Test;
var t2 = new Test;
t1.method(); // alerts "1"
t2.method(); // alerts "1"
Test.method(); // TypeError: Object function Test() {} has no method 'method'

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

相关文章:

javascript - 从 JSON 到关联数组到 html 表

javascript - Google 电子表格脚本 - 仅授予对一张工作表的访问权限

javascript - Promise 解析器/拒绝器可以触发它的对立面吗?

javascript - 如何在 Angular Js 中制作粘性标题?

javascript - Unicode 字符不起作用

javascript - 在 CSS 排序后定位第一个元素

javascript - 未定义的 CSS 属性到 JS 数组元素

javascript - 使用 goog.events.listen 传递参数

javascript - <a>标签属性引用

javascript - 单击按钮时,HTML 表中的所有数据都重置为 0