该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-25
最后修改:2009-04-25
只有一条评论,楼主精神可嘉。
1.不知道楼主是否知道obj.toString方法? 2.不知道楼主是否知道JS内建对象Boolean,Number,String,Object,Array,Function,RegExp等的字面量(literal)形式?(true,123,"abc",{a:"A"},[1,"a"],function(){},/\w+/) 3.下面这个没有楼主所说的函数调用运算符,又该如何解释这段代码? function F(){} var f = new F; 4.不知道楼主能够看懂下面这段模拟new运算符工作原理的代码? function _new(clazz, args){ var _this = clone(clazz.prototype); //{} var obj = clazz.apply(_this, args); var type = typeof obj; if(type == "object" && obj !== null || type == "function") return obj; else return _this; /* 另一种写法 if(obj === null || type == "undefined" || type == "boolean" || type == "number" || type == "string"){ return obj; }else{ return _this; } */ } new clazz(...) 等价于 _new(clazz, ...) 注意,代码忽略了对参数细节的处理 |
|
返回顶楼 | |