在javascript上重构对象方法
我有一个对象make={}; 我创建了对象方法(make.a(),make.h1()),其中每个方法都创建一个标记元素 我创建了我所做的一系列工作: 我想创建许多这样的标记元素 有没有办法避免重复在javascript上重构对象方法,javascript,object,methods,refactoring,Javascript,Object,Methods,Refactoring,我有一个对象make={}; 我创建了对象方法(make.a(),make.h1()),其中每个方法都创建一个标记元素 我创建了我所做的一系列工作: 我想创建许多这样的标记元素 有没有办法避免重复 return document.createElement('tagName'); 每次?都可以将标记名传递给函数 var make = {}; make.el = function(elem) { return document.createElement(elem); };
return document.createElement('tagName');
每次?都可以将标记名传递给函数
var make = {};
make.el = function(elem) {
return document.createElement(elem);
};
var h1 = make.el('h1');
h1.innerHTML = 'Hello World';
document.body.appendChild(h1);
var a = make.el('a');
a.href = 'http://jsfiddle.net';
a.innerHTML = 'JSFiddle';
document.body.appendChild(a);
一种方法是使用eval命令,尽管不推荐使用
var make = {};
var tags = "a,h1,h2,h3,p,div,span"; // and so on
var arr = tags.split(",");
for (var i=0; i<arr.length; i++) {
eval (" make[arr[i]] = function (){return document.createElement('"+arr[i]+"')};");
}
var h1 = make.h1();
h1.innerHTML = 'Hello World';
document.body.appendChild(h1);
var make={};
var tags=“a、h1、h2、h3、p、div、span”//等等
var arr=tags.split(“,”);
对于(var i=0;i我的意思是:我可以在创建方法的“超级方法”中使用标记元素名称作为参数吗?所以在“超级方法”中,我只写了一次:return document.createElement(this);或者类似的东西谢谢goldman!这正是我想要的。为什么不推荐它?