js方法默认参数

本来以为js和Python特别像,那么Python的这种默认参数也可以

function createDom(type, attrN = "null", attrV = "null", attr2N = 'null', attr2V = 'null'){
	var self = document.createElement(type);
	if(attrN != "null") {
		self.setAttribute(attrN,attrV);
		if(attr2N != "null"){
			self.setAttribute(attr2N,attr2V);
		}
	}
	return self;
}

 这样写,chrome是可以运行的。但是ie不行。后来网上查了下,可以使用arguments实现

//方法1
function createDom(){
	
	var type = arguments[0] ? arguments[0] : 'null';
	var attrN = arguments[1] ? arguments[1] : 'null';
	var attrV = arguments[2] ? arguments[2] : 'null';
	var attr2N = arguments[3] ? arguments[3] : 'null';
	var attr2V = arguments[4] ? arguments[4] : 'null';
	var self = document.createElement(type);
	if(attrN != "null") {
		self.setAttribute(attrN,attrV);
		if(attr2N != "null"){
			self.setAttribute(attr2N,attr2V);
		}
	}

 也可以是这样

//方法2
function createDom(type, attrN , attrV, attr2N, attr2V){
	type = type ? type : 'null';
	attrN = attrN ? attrN : 'null';
	attrV = attrV ? attrV : 'null';
	attr2N = attr2N ? attr2N : 'null';
	attr2V = attr2V ? attr2V : 'null';
	var self = document.createElement(type);
	if(attrN != "null") {
		self.setAttribute(attrN,attrV);
		if(attr2N != "null"){
			self.setAttribute(attr2N,attr2V);
		}
	}
	return self;
}

 或者这样(推荐)

//方法3
function createDom(type, attrN , attrV, attr2N, attr2V){
	type = type || 'null';
	attrN = attrN || 'null';
	attrV = attrV || 'null';
	attr2N = attr2N || 'null';
	attr2V = attr2V || 'null';
	var self = document.createElement(type);
	if(attrN != "null") {
		self.setAttribute(attrN,attrV);
		if(attr2N != "null"){
			self.setAttribute(attr2N,attr2V);
		}
	}
	return self;
}

猜你喜欢

转载自linhexiao.iteye.com/blog/2297453
今日推荐