Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript上重构对象方法_Javascript_Object_Methods_Refactoring - Fatal编程技术网

在javascript上重构对象方法

在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); };

我有一个对象make={}; 我创建了对象方法(make.a(),make.h1()),其中每个方法都创建一个标记元素

我创建了我所做的一系列工作:

我想创建许多这样的标记元素

有没有办法避免重复

    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!这正是我想要的。为什么不推荐它?