AppendChild不工作!,从DOM元素对象继承.我做错了什么?
AppendChild does not work!,inheriting from DOM Element object..What Am I doing wrong here?
我正在编写我的自定义元素,它比标准DOM元素有更多的方法,这里是继承自element对象的元素
function MyObject(){
return (Object.create(document.createElement("Mytag"),{
myfunction:function(){
return blahblah;
}
}));
}//function for creating object ends
function MyObject2(){
return (Object.create(document.createElement("Mytag2"),{
myfunction:function(){
return blahblah;
}
}));
}//function for creating second object ends
var a=new MyObject();//statement works fine
var b=new MyObject2();//statement works fine
现在,当我试图使其中一个对象成为另一个对象的子对象时,我得到任何东西都可以工作,而不是抛出异常
a.appendChild(b);
因为您使用return (Object.create(...));
,您的new MyObject();
和new MyObject2();
返回对象而不是DOM元素,因此a.appendChild(b)
将不起作用,因为a
和b
预计是DOM元素。
要查看差异,请查看此jsFiddle
您需要将属性描述符传递给Object.create
,而不是方法。
function MyObject() {
return Object.create(document.createElement("Mytag"), {
myfunction: {
value: function() {
return 'blahblah';
}
}
});
}
这在Chrome中为我工作:
a = new MyObject();
> HTMLUnknownElement {spellcheck: true, isContentEditable: false, contentEditable:
"inherit", children: HTMLCollection[0], outerText: ""…}
a.myfunction()
> "blahblah"
但是请注意,不是正确地将对象的"类型"设置为MyObject
。当我尝试将对象添加到DOM时,它也不能防止抛出异常:
相关文章:
- reducers在redux中得到Function not Object,what'it’他错了
- 正在尝试为Docpad网站设置Lunr全文搜索插件.我做错了什么
- 谷歌关闭注释赢得'Don’不要告诉我;I’我错了
- Javascript对象/原型.我的理解错了吗
- 什么'这个随机数猜谜游戏错了
- 重新加载重复数据失败,我做错了什么
- 什么'这个谷歌脚本错了
- 柴如承诺即使错了也会过去
- 什么'Gulp错了
- 我做错了什么
- angular mongodb数组格式写错了
- JavaScript排序算法不起作用 - 任何明显的我做错了
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- Javascript语法 - 我做错了什么
- 角度灯箱不起作用.我做错了什么
- 在这个猫鼬独特的保存前验证中,我做错了什么
- fullcalendar赢得't让我调整事件大小(光标不显示,我做错了)
- document.getElementById为空..什么'I’我的代码错了.
- Javascript中的继承,我在这里做错了什么
- AppendChild不工作!,从DOM元素对象继承.我做错了什么?