function _(e) {
if (typeof e == 'string') {
if (e.charAt(0) == '#') {
return document.getElementById(e.slice(1));
} else if (e.charAt(0) == '.') {
var c = document.getElementsByClassName(e.slice(1));
return (c.length==1)?c[0]:c;
} else {
var t = document.getElementsByTagName(e);
return (t.length==1)?t[0]:t;
}
} else {
console.log('Error. Not a valid string in _.');
}
}
_.prototype.hide = function() {
//testing
console.log(this)
}
该功能工作正常,但是当我尝试添加方法隐藏并尝试并调用它像_('#menu').hide();
时,它会抛出错误:TypeError: Object #<HTMLDivElement> has no method 'hide'
我误解了什么?为什么这个原型失败?
是的,我没有谷歌这个问题,我只是不明白。一个提示将不胜感激。
它在我看来像你试图调用隐藏的返回值功能。我期望:var x = new _('#menu'); x.hide();去工作,但我不认为这就是你想要的。也许你应该返回一个对象来调用隐藏功能。 – jjrdk 2012-02-10 09:52:58
必须在'hide()'中设置'return' – diEcho 2012-02-10 09:53:41