论坛首页 Web前端技术论坛

JavaScript 对象性的构造分析 - 从现象到本质

浏览 25225 次
该帖已经被评为精华帖
作者 正文
   发表时间: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, ...)
注意,代码忽略了对参数细节的处理
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics