javascript中的prototype和constructor
今天把javascript重新温习了一遍,觉得又进步了,这里说一下自己的收获。
javacript是一种神奇的语言,越来越喜欢这门语言了,对于解决问题特别方便。
js里有一种一切都是变量的说法,比如一个函数:
function a(){ var name="hello"; return name;}
可以写成:
var a=function(){var name="hello"; return name;};
这种写法叫做函数对象文本标识记法。
这样,函数也可以作为参数传递,也可以定义成函数的局部变量。
js里还有一种叫做一切都是对象的说法,没有类的概念。
容易困惑的是prototype和constructor。
prototype即原型,原型是函数的属性,也是一种对象。通过原型可以扩展对象的属性,比如
person{
age:18,
name:"lisan"
};
var a=new Person();
a.prototype.getName=function (){return this.name};
即为person增加了getName方法。
constructor即构造器,构造器就是函数,函数就是构造器,是prototype的属性,即对象实例的属性,而prototype是函数的属性。
a.prototype.constructor==Person指向创建当前函数的构造函数。
如果a.prototype={getName:function(){return this.name}},则原来的构造器被覆盖了,
a.prototype.constructor!=Person。用下面的修改过来
a.prototype.constructor=Person,不然原型中的其他属性和方法就消失了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
2013-03-24 坚持的力量 第九篇
2013-03-24 坚持的力量 第八篇
2013-03-24 坚持的力量 第七篇