Javascript中new的作用
关于js中new关键字的理解,先来看个例子:
像这样创建实例时使用new与不使用new有什么区别????
function ParasiticPerson(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.say = function () {
document.write("Hello,I'm " + this.name + "," + this.age + " years old,i'm a " + this.job+"。<br/>");
}
return o;
}
var person1 = new ParasiticPerson("wede", 25, "SoftWare"); //使用new
person1.say(); //Hello,I'm wede,25 years old,i'm a SoftWare。
var person4 = ParasiticPerson("jack", 35, "SuperStar"); //不使用new
person4.say(); //Hello,I'm jack,35 years old,i'm a SuperStar。
//答案1:构造函数与其他函数唯一的区别在于调用它们的方式不同。P146
//任何函数,只要通过new操作符来调用,那它就可以作为构造函数;而任何函数,如果不通过new操作符来调用,那它就跟普通函数没什么两样。
//但还是有疑问:既然使用和不使用new都可以,那为什么构造函数创建对象一定要使用new呢?
上面的答案并不能被真正理解,请看下面的回答:
答案2:揭晓答案前,先看下面的例子:
当不用new直接var a2=A1()时,其实只是相当于执行了一遍构造函数,这和执行普通函数一样,本例而言最后会返回false赋值给a2变量;而用new创建的是一个实例对象,这时候var a1=new A1()会忽略构造函数里的return 语句(这是语言的规则指定的,如果用new调用,就会返回这个new之后的构造函数的引用),所以,new之后会创建一个实例,并且这个实例是包含实例成员和原型成员的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端