我最近尝试在JavaScript中编写内置对象函数的快捷方式.
这里是:
function changeit(){
var ge = getElementsByTagName() , doc = document;
doc.ge('div')[0].innerHTML = 'Changed';
}
Run Code Online (Sandbox Code Playgroud)
我虽然它实际上会工作,但事实并非如此.有没有办法让它发挥作用?我的意思是通过var名称调用内置对象函数,它是否适用于所有浏览器?
这个:
var ge = getElementsByTagName()
Run Code Online (Sandbox Code Playgroud)
调用函数,或尝试.这个名称没有全局函数,所以它不起作用.同样的,
doc.ge('div')
Run Code Online (Sandbox Code Playgroud)
试图找到"doc"的"ge"属性,它也不存在; 你刚刚声明"ge"是一个局部变量,而不是"doc"的属性.
如果你想要一个更短的名字,只需做这样的事情:
function ge(tagName) { return document.getElementsByTagName(tagName); }
Run Code Online (Sandbox Code Playgroud)
然后你就可以写了
ge('div')[0].innerHTML = 'Changed';
Run Code Online (Sandbox Code Playgroud)
该功能getElementsByTagName几乎不存在。您必须将其作为的属性进行访问 document,但是即使如此,您也必须保存对它的引用document:
var ge = document.getElementsByTagName.bind(document);
Run Code Online (Sandbox Code Playgroud)
或者,您可以将名称另存为字符串:
var ge = 'getElementsByTagName';
Run Code Online (Sandbox Code Playgroud)
然后,您可以执行以下操作:
document[ge]('div')...
Run Code Online (Sandbox Code Playgroud)
因为obj['foo']等于obj.foo。
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |