var x=new ..其中的..必选项。对象的构造函数。如果构造函数没有参数,则可以省略圆括号。
没参时你的写法是一样的
没参时你的写法是一样的
解决方案 »
- 急:一个菜单栏下拉框的问题
- 如何用JS在LI中增加一个LI,并且LI中有个ID的属性
- google浏览器 怎么取fileupload路径
- 调用vc写的Activex控件函数时带句柄,这个句柄怎么传递?
- 求javascript日历控件。
- 关于getElementsByName 奇怪的问题,看代码,谁能解释一下为什么.
- 如何只对页面图片禁止右键?在线等待!
- 如何利用改变客户端的屏幕分辨率?(基于网页的任何技术)
- 请教:如何用Javascript判断日期格式是否正确?
- jquery easyui datagrid一个小小的toolbar引发的血案
- 使用createElement创建的对象的生存期
- 怎么动态创建一个Input元素
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(); //这个其实就是立即执行了,如果你看到有这种写法,说明这个方法是有返回值的,所以才会这样做。
例: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就不好构建对象了