原型与构造函数定义方法的优点
在 JavaScript 中定义方法时,开发人员可以选择将其实现为原型方法或声明它们直接在构造函数中。两种方法都有其优点:
原型定义的方法
示例:
function Class() {} Class.prototype.calc = function (a, b) { return a + b; } // Two instances share the same calc() method var ins1 = new Class(), ins2 = new Class(); console.log(ins1.calc(1,1), ins2.calc(1,1)); // Outputs 2, 2 // Updating the prototype method affects both instances Class.prototype.calc = function() { return Array.prototype.slice.apply(arguments).reduce((a, b) => a + b); } console.log(ins1.calc(1,1,1), ins2.calc(1,1,1)); // Outputs 3, 3
但是,原型方法无法访问内部定义的私有变量
构造函数定义的方法
函数与变量声明"Class"
关于使用函数文字(例如 var Class = function () {})或函数声明(例如 function Class () {})之间的选择,后者是首选,因为它允许将函数名称“提升”到作用域的顶部,避免在定义函数之前调用该函数而导致的潜在错误。
以上是原型与构造函数定义的方法:哪个最适合 JavaScript?的详细内容。更多信息请关注PHP中文网其他相关文章!