浅谈javascript之new
来源:互联网 发布:淘宝店头像图片服装 编辑:程序博客网 时间:2024/06/02 22:27
我们知道,new就是创建一个对象的意思。那么在javascript中,哪些是可以new的呢?请看:
1>var i = new Number( '1' );
2>var b = new Boolean( true );
3>var s = new String( 'a' );
4>var f = new Function( 'alert( 1 );' );
5>var obj = new Object;// var obj = new Object();
6>var temp = function( a, b )
{
this.a = a;
this.b = b;
}
var t = new temp;
这6种情况下typeof i,typeof b,typeof s,typeof f,typeof obj,typeof t都返回JS之'object'串。
最后回忆一下JS之Object,Function,Number,String,Boolean,undefined,后面一个就不说了。前面5个typeof一下都是'function'串。例:alert( typeof Object == 'function' );和alert( Object );就明了了。(这也就是为什么XXX.constructor可以直接和她们画等号的原因。)
1>var i = new Number( '1' );
2>var b = new Boolean( true );
3>var s = new String( 'a' );
4>var f = new Function( 'alert( 1 );' );
5>var obj = new Object;// var obj = new Object();
6>var temp = function( a, b )
{
this.a = a;
this.b = b;
}
var t = new temp;
这6种情况下typeof i,typeof b,typeof s,typeof f,typeof obj,typeof t都返回JS之'object'串。
顺便说说,关于typeof,instanceof和constructor,大家知道可以用来进行对象的一些非空判断或类型辨别。
这里说说第5,6种情况, obj instanceof Object返回true; t instanceof temp返回true且 t instanceof Object也返回true;
这也就是Object和Function的一点区别了。
这里扩展一下,凡是Function类型的对象都可以调用Object的prototype,但返过来就不行。记住:是类型的对象,比如temp只可以调用Function.prototype,但new temp既可以调用temp.prototype也可以调用Object.prototype。
所以,当我们遍历new temp的所有prototype的时候,拿到的除了定义在temp内部的成员变量a,b外,还有temp.prototype的所有成员以及Object.prototype的所有成员。最后关于constructor,凡对象.constructor返回都是Function类型。即typeof XXX.constructor == 'function'返回true。比如上例中: new temp().constructor == temp返回true,但temp.constructor == Function返回true; new Object().constructor == Object返回true。最后回忆一下JS之Object,Function,Number,String,Boolean,undefined,后面一个就不说了。前面5个typeof一下都是'function'串。例:alert( typeof Object == 'function' );和alert( Object );就明了了。(这也就是为什么XXX.constructor可以直接和她们画等号的原因。)
- 浅谈javascript之new
- 浅谈javascript之new
- 浅谈JavaScript new对象的四个过程
- 浅谈JavaScript new对象的四个过程
- javascript 之ajax浅谈
- 浅谈JavaScript之BOM
- 浅谈JavaScript之DOM
- 浅谈JavaScript之"伪类"
- 浅谈javascript DOM编程之分离javascript
- 浅谈new Runnable(){}--new Interface(){}
- JavaScript之浅谈object.prototype.toString.call()
- 浅谈Javascript中面向对象之对象
- 浅谈new和delete
- 浅谈New关键字
- 浅谈New关键字
- 浅谈new操作符
- 浅谈new与delete
- 浅谈new、delete
- linux下oracle常用技巧
- dos 命令
- 【思维重现】进程调度
- Oracle中有关Latch的介绍
- Linux下Oracle 11G r2 (64位)安装
- 浅谈javascript之new
- iOS 设置程序自动休眠是否开启
- MFC 实现在调用非模式对话框时,view不可响应鼠标操作
- 深入剖析Android Activity
- Spring注入方式及用到的注解 -----@Component,@Service,@Controller,@Repository
- 手把手教你写专利申请书·如何申请专利
- [.NET]CheckBoxList 用法
- SVN CO SVN+SSH的使用
- 图图