如何声明对象方法?

新手上路,请多包涵

问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

<script>



    //声明构造函数
    function ElementC (elementname,fatherelement,number) {
        //传入需要创建的元素名字
        this.e = document.createElement(elementname);
        //传入需要加入哪个父元素的子元素末尾
        this.fe = document.getElementsByTagName(fatherelement);
    }

    //声明可继承方法,创建元素方法
    ElementC.prototype.create = function () {
        this.fe.appendChild(this.e);
    }


onload=function (){
    //创建对象
    var test = new ElementC("table","body");
    //调用创建元素方法
    test.create();

}

</script>


我想创建一个对象,有一个实现最简单的添加元素的方法,不过报错提示没有这个函数
这里用用prototype声明,因为我看的视频教程说,这个属性里的方法都是可继承的。

clipboard.png

还有一点,关于javascript面向对象,原型,继承,什么子类之类讲解比较好的的视频哪里有啊,感谢各位大佬

阅读 2k
2 个回答

clipboard.png
document.getElementsByTagName这个方法返回的是一个集合,题中你写的是body标签,因此它会找到所有的body标签,整合成一个集合,供你使用
因此你将你的代码修改一下

// 在集合中拿第一个元素
this.fe = document.getElementsByTagName(fatherelement)[0];

其实在2019年,我更推荐你使用document.querySelector(fatherelement);这个方法获取DOM节点非常非常方便

关于你说的js基础知识,我个人觉得看视频去了解这些基础知识是效率是比较慢的
建议你可以看书了解
推荐两本书 《js高级程序设计》,《你不知道的js上卷》,着重就轻,结合书本和网上资料,MDN等。

document.getElementsByTagName(fatherelement)返回的是一个HTMLCollection,也就是HTML 元素的集合。appendChild是单个元素的函数。
建议运行程序的时候在错误的地方打断点,搞清楚每运行一行代码,各个变量的值是什么。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏