2014-09-03 147 views
0

我想要的功能,这样的库(类似于jQuery是做)的JavaScript返回默认值

var myLib = function (idOfAnElement){ 
    var myElement = document.getElementById(idOfAnElement); 
    return{ 
    getHeight: function(){ 
     return myElement.style.height; 
    }, 
    getWidth: function(){ 
     return myElement.style.width; 
    } 
    } 
} 

我的问题是,我不知道怎么回

myElement 

在默认情况下,如果没有所谓的喜欢

myLib('myId').getHeight; // Returns Height 
myLib('myId')   // Is supposed to return the HTML-Element with id = 'myId' 
+0

你尝试过什么吗? – fcalderan 2014-11-13 11:20:18

回答

0

其他功能创建特权方法返回私人myElement财产本身的价值

var myLib = function (idOfAnElement){ 
    var myElement = document.getElementById(idOfAnElement); 

    return{ 
    getHeight: function(){ 
     return myElement.style.height; 
    }, 
    getWidth: function(){ 
     return myElement.style.width; 
    }, 
    getElement: function() { 
     return myElement; 
    } 
    } 
} 

myLib('myId').getElement(); 
0

你想,可以通过添加你想要的元素对象的方法,简单地实现什么,

的Javascript可以轻松添加方法存在的对象,即使this指针也会指向绑定的对象。

var myLib = function (idOfAnElement){ 
    var myElement = document.getElementById(idOfAnElement); 
    myElement.getHeight: function(){ 
     return this.style.height; 
    } 
    myElement.getWidth: function(){ 
     return this.style.width; 
    } 
    return myElement; 
} 

注意:虽然它的工作原理,我不会推荐它。 您需要注意不要覆盖现有的方法/字段,并且如果多个库采用相同的方法,则可能会发生碰撞。

而这不是jQuery所做的事情:它们创建一个包装对象。要从jQuery获取元素,您需要使用[0],例如$('#myEl')[0]

+0

这是否回答您的问题?如果是这样,您可以将问题标记为已回答(点击您选择的答案旁边的复选标记),如果不是的话,您可以提出后续问题,我们会解释。 – Iftah 2014-09-08 08:34:38