JavaScript返回默认值

JavaScript return a default value

本文关键字:默认值 返回 JavaScript      更新时间:2023-09-26

我想制作一个这样的函数库(类似于jquery正在做的)

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' 

创建一个特权方法,返回私有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();

只需将您想要的方法添加到元素对象中,就可以实现您想要的目标

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]