Javascript 原型(prototype)(类似于 Closures 的原型(prototype),而不是 JQuery)

标签 javascript prototype closures

我刚刚拿起一本关于 ASP.NET 和 AJAX 的新书,里面有一个这样的示例:

Person = function(firstName) {
    this._firstName = firstName;
}

Person.prototype = {
    get_FirstName = function() {return this._firstName;}
}

我立即注意到这不是我所习惯的,FireBug 显然同意我的观点,认为它很不稳定。我习惯了这样的事情:

Person.protoype = {
    get_FirstName: function() {return this._firstName;}
}

这只是作者的拼写错误还是他可能使用了 ASP.NET AJAX 库中的功能?

另外,前面的函数和这个有什么区别:

Person.protoype.get_FirstName = function() {
    return this._firstName;
}

作者是否只是将同一函数的两个可接受的声明混在一起?

最佳答案

第一个问题,是的,我认为这是一个错字。

第二个问题,是的,有区别。不明智的人:

Constructor.prototype = { method : function(){} }

继承自定义该方法的匿名对象({})。 如果第二次执行此操作,则先前的方法将消失,因为继承链现在将指向一个新的匿名对象。

更常见的:

Constructor.prototype.method = function(){}

简单地定义一个新方法。

关于Javascript 原型(prototype)(类似于 Closures 的原型(prototype),而不是 JQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2025244/

相关文章:

javascript - 上传图片时如何传递参数?

javascript - 为什么计数增加,关闭问题

javascript - 在 javascript 中编辑原型(prototype)方法 .push()

javascript - 这个结论正确吗?我的推理是否有错误

javascript - 基于现有对象创建对象

javascript - 结合两个构造函数

javascript - 理解 Jon Resig 的偏应用实现

javascript - React-file-viewer 将任何文件渲染得非常小

javascript - 在新窗口中打开 AdBrite 广告

javascript - 如何避免 useEffect() 竞争条件