js中的var a = new A;与var a = new A();有什么区别?

米刀文 2012-08-05 06:00:34
js中的var a = new A;与var a = new A();有什么区别?
加不加()有什么不同吗
...全文
602 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
u014730492 2014-04-15
  • 打赏
  • 举报
回复
引用 9 楼 jiestyle21 的回复:
他们说的不好懂~ js中的var a = new A;与var a = new A();有什么区别? var a = new A; //这个是引用,而并没有执行,看下面的例子 var _alert = window.alert; window.alert=function(){ return; }; 这样alert被重写了,已经废了。而_alert即为之前alert的一个引用,这个引用在内存中是已经占据一块位置的,所以_alert(1);是可以执行的。 var a = new A(); //这个其实就是立即执行了,如果你看到有这种写法,说明这个方法是有返回值的,所以才会这样做。
你确定么?我也遇到了这样的代码,着实蛋疼 : a = new B;连var也省,尼玛,坑爹啊
米刀文 2012-08-10
  • 打赏
  • 举报
回复
还是不太懂啊
SK猫 2012-08-08
  • 打赏
  • 举报
回复
只知道没构造函数时没区别,

突然想知道,如果有构造函数,那有什么区别
ajccom 2012-08-08
  • 打赏
  • 举报
回复
没区别
猿敲月下码 2012-08-07
  • 打赏
  • 举报
回复
js要求没那么高,()可有可无,最好还是加上,养成习惯
anglechengd 2012-08-07
  • 打赏
  • 举报
回复
JavaScript 中的new关键字与C#,JAVA中的概念完全不一样。
例:var a=new A();
让我们来看看在JavaScript中的new发生了什么?
var a={};//建立了一个新对象;
a.__proto__=A.prototype;//将a的原型指向A;那么a就继承了A的方法与属性!
A.call(a);//调用了A里的构造函数;
document.write(a.__proto__===A.prototype);//为true
(ie不支持!因为在IE中__proto__为私有属性,不能能访问)
所以new的作用其实就是建了一个空的对象 ,并且通过原型链记录原始对象的方法与属性

那么var a=new A()与var a=new A 的没有太大的区别,他们都说明了建立对象所需要的说明,比如a.__proto__指向谁?空对象的名字?等等。但是有一个小小的区别就是,如果A的构造为下面这种:
function A(name,addr){
this.name=name;
this.addr=addr;
}
那么var a=new A就不好构建对象了
bugknightyyp 2012-08-06
  • 打赏
  • 举报
回复
遵守规范,如果你随便写,机器又不比人,什么都能认识,人连话外之音都能听出
编程点滴 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

哦,那为什么在C#,java中new对象为什么一定要加()啊!
[/Quote]

这也是规定
jiestyle21 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

他们说的不好懂~
js中的var a = new A;与var a = new A();有什么区别?

var a = new A; //这个是引用,而并没有执行,看下面的例子
var _alert = window.alert;
window.alert=function(){ return; };
这样alert被重写了,已经废了。而_alert即为之前alert的一个引用,……
[/Quote]
如果觉得我说的不错,给分喔亲~
jiestyle21 2012-08-06
  • 打赏
  • 举报
回复
他们说的不好懂~
js中的var a = new A;与var a = new A();有什么区别?

var a = new A; //这个是引用,而并没有执行,看下面的例子
var _alert = window.alert;
window.alert=function(){ return; };
这样alert被重写了,已经废了。而_alert即为之前alert的一个引用,这个引用在内存中是已经占据一块位置的,所以_alert(1);是可以执行的。
var a = new A(); //这个其实就是立即执行了,如果你看到有这种写法,说明这个方法是有返回值的,所以才会这样做。
joybee007 2012-08-06
  • 打赏
  • 举报
回复
没有参数可以省略括号,但最好不要省略;
js虽然是弱类型语言,但是功能还是很强大的,所以写的时候还是要严格要求自己。
米刀文 2012-08-05
  • 打赏
  • 举报
回复
难道这就是强类型语言与弱类型语言的区别啊!?
米刀文 2012-08-05
  • 打赏
  • 举报
回复
哦,那为什么在C#,java中new对象为什么一定要加()啊!
licip 2012-08-05
  • 打赏
  • 举报
回复
+1这是规定呀。[Quote=引用 1 楼 的回复:]
var x=new ..其中的..必选项。对象的构造函数。如果构造函数没有参数,则可以省略圆括号。


没参时你的写法是一样的
[/Quote]
米刀文 2012-08-05
  • 打赏
  • 举报
回复
但是这是什么原理啊,求深入讲解
人生无悔 2012-08-05
  • 打赏
  • 举报
回复
var x=new ..其中的..必选项。对象的构造函数。如果构造函数没有参数,则可以省略圆括号。


没参时你的写法是一样的
内容概要:本文提出了一种基于改进粒子群算法(PSO)求解的建筑集成光储系统规划运行综合优化方法,并提供了Python代码实现。该方法面向建筑级光伏发电与储能系统的协同优化问题,构建了涵盖系统容量配置、设备选型与运行策略的综合优化模型,综合考虑初始投资、运维成本、购售电费用及系统可靠性等多重目标,通过引入改进的粒子群优化算法提升求解效率与全局搜索能力。文详细阐述了数学模型的建立过程、目标函数与约束条件的设计,以及算法改进策略的具体实现路径,实现了在满足负荷需求与设备运行限制的前提下,最大化系统的经济性与能源自给能力。; 适合人群:具备一定电力系统、新能源或优化理论背景,熟悉基本优化算法原理并掌握Python编程的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于建筑级光储系统的规划设计与运行仿真分析,辅助决策系统容量配置与运行策略;②为综合能源系统优化提供可复现的智能优化算法实现范例,提升系统经济性与运行效率;③作为改进粒子群算法在能源系统优化领域应用的教学案例,帮助理解算法改进思路与工程实现细节。; 阅读建议:建议结合文的Python代码,深入理解优化模型的构建逻辑与算法实现机制,重点关注目标函数的多目标处理方式、约束条件的惩罚函数设计以及粒子群算法的改进策略,推荐通过调整参数和场景设置进行复现实验,并尝试将该方法迁移应用于其他类型的综合能源系统优化问题进行验证与拓展。
内容概要:本文档详细介绍了基于超局部扩展状态观测器(Ultra-Local Extended State Observer, UL-ESO)的永磁同步电机(PMSM)无模型预测电流控制方法,并提供了完整的Simulink仿真实现。该方法摆脱了传统控制策略对电机精确数学模型的依赖,通过UL-ESO实时估计系统内部动态特性及外部扰动,进而实现对d轴和q轴电流的高精度预测与控制。该技术显著提升了控制系统在参数摄动和外部干扰下的鲁棒性与适应能力,尤其适用于高性能、高可靠性的电机驱动应用场景。研究内容属于电气工程与控制理论的交叉领域,重点聚焦于先进观测器设计与预测控制算法在实际电机系统的集成与验证。; 适合人群:具备自动控制理论、现代控制方法(如状态观测器、预测控制)基础以及电机控制相关背景的研究生、科研人员,或从事电力电子与电机驱动方向的工程技术人员;熟悉MATLAB/Simulink仿真环境者更佳。; 使用场景及目标:①用于高性能永磁同步电机驱动系统的研发与性能优化,特别是在模型不确定性较强或工况复杂的场合;②作为先进控制算法的教学与科研案例,深入理解无模型控制、扩张状态观测器的设计思想与实现原理;③支撑IEEE标准期刊论文的复现、科研项目开发及新型控制算法的验证,有效提升系统对参数变化和未知扰动的抑制能力。; 阅读建议:建议结合提供的Simulink模型与相关的控制理论文献进行同步学习,重点关注UL-ESO的结构设计、稳定性分析与参数整定方法,通过改变负载、转速等工况进行仿真调试,深入体会无模型预测控制相较于传统PI控制的优越性,并可在此基础上将该控制策略拓展至速度环与位置环,构建完整的高性能多环控制系统。
内容概要:本文介绍了一个基于RAG与Function Calling技术的EDA自然语言辅助设计与RTL代码审查智能体,旨在提升芯片前端设计效率与规范性。通过将EDA工具封装为可调用函数、结合LLM与AST分析实现RTL代码静态检查、利用RAG检索企业内部设计规范,并构建具备自我纠错能力的闭环系统,智能体能够完成代码审查、规范问答和自动修复建议。文提供了完整的Python实现案例,涵盖向量库构建、工具定义、Agent编排及执行流程,并展望了未来在全流程自动化、私域知识融合与安全审计方面的发展方向。; 适合人群:具备一定IC前端设计经验与Python编程基础的工程师,以及关注AI在EDA领域应用的研发人员,尤其适合工作1-3年希望提升自动化设计能力的技术人员。; 使用场景及目标:①实现新人工程师的RTL代码规范自动审查与风格统一;②将自然语言需求快速转化为可综合的RTL代码框架;③辅助设计空间探索与自动化ECO优化;④构建可集成于CI/CD流程的智能代码质检模块; 阅读建议:此资源强调实战项目在芯片行业的应用落地,不仅展示LLM智能体的构建方法,更突出确定性工具与大模型协同的设计理念。建议读者结合代码逐段实践,理解Tool Calling、RAG与AST辅助提示等关键技术的工程实现细节,并在此基础上扩展仿真、综合等更多EDA工具集成。
内容概要:本文介绍了一套基于Matlab平台实现的多微电网点对点分布式电能交易策略程序代码,旨在解决多个微电网之间分布式能源的高效、灵活交易问题。该方案结合智能优化算法(如改进粒子群算法等),构建了多微电网间的自主交易与协同调度模型,在实现电能点对点交易的同时,充分考虑配电网的电能质量与网损因素,有效提升了分布式能源的承载能力和利用效率。研究属于电力系统智能管理领域的前沿方向,涵盖了交易机制建模、优化算法设计、系统仿真验证等关键环节,具有较高的科研创新性与工程应用价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事新能源、微电网、分布式能源系统等相关领域的科研人员或工程技术人员,尤其适合研究生及以上学历的研究者。; 使用场景及目标:① 实现多微电网间点对点电能交易的建模与仿真分析;② 优化分布式能源的调度策略与资源配置,提升电网运行的经济性与稳定性;③ 支持学术论文复现、科研课题研究及实际项目的算法验证与系统设计方案评估。; 阅读建议:此资源以Matlab代码为核心载体,建议读者结合文档内容与代码注释进行系统学习,重点关注交易策略的数学建模过程、优化算法的设计实现及仿真结果的分析解读,同时可借助IEEE标准测试系统(如IEEE 33节点)开展案例验证,以深化对多微网协同运行机制的理解与实践能力。

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧