变量对象该如何引用自己的this?

<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>

<script>
var a = {

ul:document.getElementsByTagName("ul")[0],
li:this.getElementsByTagName("li")//这样的话,会报错,//如果只是this会指向window,该如何把this引用变量a

}

console.log(a.li)
</script>

阅读 2k
1 个回答
var a = {
    ul: document.getElementsByTagName("ul")[0],
    getLi: function() {
        return this.ul.getElementsByTagName("li");
    }
};

li属性变成getLi方法,这样,方法里的this就指向了方法的拥有者a。其实,要获取已有属性一般都会用方法而不是定义一个新属性来获得。

另外,也可以不使用this

var ul = document.getElementsByTagName("ul")[0];
var a = {
    getUl: function() {
        return ul;
    },
    getLi: function() {
        return ul.getElementsByTagName("li");
    }
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题