[js]js原型链继承小结
2017-12-03 21:21
316 查看
js
DOM节点层次图
Dom并非一种编程语言,Dom只是提供了一系列的接口,利用Dom的这些接口可以很方便的读取,修改,删除Html和XML文件中的标签元素和文本内容.在这里我们侧重于讲解Dom对Html文件的操作.那么Dom是如何读取和管理Html文件的呢?首先你必须要了解html的源码结构
div > HTMLDivElement > HTMLElement > Element > Node > EventTarget document -> HTMLDocument > Document > Node > EventTarget
参考: DOM, DOCUMENT, BOM, WINDOW 有什么区别?
https://www.zhihu.com/question/33453164
document.title = 'how to make love'; document.body; document.getElementById('xxx');
DOM 是为了操作文档出现的 API,document 是其的一个对象;
BOM 是为了操作浏览器出现的 API,window 是其的一个对象。
div > HTMLDivElement > HTMLElement > Element > Node > EventTarget document -> HTMLDocument > Document > Node > EventTarget
参考: http://huang-jerryc.com/2016/06/28/JavaScript%E5%8E%9F%E5%9E%8B%E4%B8%AD%E7%9A%84%E5%93%B2%E5%AD%A6%E6%80%9D%E6%83%B3/
参考: 从原型链看DOM--Node类型
http://www.cnblogs.com/venoral/p/5293575.html
参考:http://www.th7.cn/web/js/201609/188644.shtml
参考:http://www.cnblogs.com/mominger/p/3822775.html
dom操作
回顾dom
参考:http://www.bijishequ.com/detail/413949?p=11-54-70
http://www.bijishequ.com/detail/421975?p=
这篇很经典
http://www.cnblogs.com/jscode/archive/2012/09/04/2670819.html
这篇图解还没怎么理解
http://developer.51cto.com/art/201009/228137_all.htm
div#div1
HTMLDivElement
HTMLElement
Element
Node
EventTarget
Object
div > HTMLDivElement > HTMLElement > Element > Node > EventTarget document -> HTMLDocument > Document > Node > EventTarget
oDiv instanceof Node //true
oDiv instanceof Element //true
##################################
# 获取元素
##################################
document.
getElementById 得到类数组 获取选项/长度 遍历
getElementsByTagName
getElementsByName(button获取性别,先遍历checkbox,oSex[i].value)
getElementsByClassName
##################################
# 元素之间的关系
##################################
// 节点: 文字 标签 文字 注释都是节点 回车和空格算一个 text
// nodetype nodename nodevalue
// 元素节点: 标签 1 大写标签名 null
// 文本节点: text 3 #text 文档内容
// 注释节点: 8 #commnet 注释内容
// document 9 #document null
console.log(oDiv.nodeType); //获取所有子节点的元素节点,判断nodetype
console.log(oDiv.nodeName);
console.log(oDiv.nodeValue);
console.log(oDiv.children); //获取元素子节点
console.log(oDiv.parentNode); //获取父亲节点
console.log(oDiv.previousElementSibling);//获取上一个哥哥节点
console.log(oDiv.nextSibling); //获取下一个弟弟节点
console.log(oDiv.firstChild); //获取所有子节点中的第一个
console.log(oDiv.lastChild); //获取所有子节点中最后一个
##################################
# 增删改查元素
##################################
var layer = document.createElement("div");
layer.id = "div1";
layer.style.width = "300px";
layer.style.height = "200px";
layer.style.border = "5px solid red";
var btn = document.getElementById('btn');
btn.onclick = function () {
document.body.appendChild(layer);
};
layer.onclick = function () {
document.body.removeChild(layer);
};
oDiv.parentNode.removeChild(oDiv);
document.body.insertBefore(oP2, oP);
oDiv.parentNode.removeChild(oDiv);
var clop = oP.cloneNode(); //克隆当前
var clop2 = oP.cloneNode(true); //克隆子子孙孙
js操作的是行内样式.
oDiv.style.width //引用数据类型
oDiv.style.backgroundColor //这种ok
var bgS = oDiv.style; bgS.backgroundColor //这种ok
var bg = oDiv.style.backgroundColor; bg = "green" //这种不ok
constructor的事
默认类的prototype = constructor+protofunction Fn() { }; console.log(Fn.prototype);
重新赋值后prototype = proto,没constructor了
function Fn() { }; Fn.prototype= { getX: function () { } }; console.log(Fn.prototype); var f = new Fn(); console.log(f.__proto__);
原型链多级继承模拟
<script> // HTMLDivElement > HTMLElement > Element > Node > EventTarget > object function myObject() { }; myObject.prototype = { hasOwnProperty: function () { console.log("myObject"); } }; function myEventTarget() { }; myEventTarget.prototype = new myObject(); myEventTarget.prototype.sum = function () { console.log('myEventTarget...') }; var f = new myEventTarget; console.dir(f); </script>
相关文章推荐
- js面向对象小结(工厂模式,构造函数,原型方法,继承)
- JS中的原型与继承
- js原型继承
- 对于js原型和原型链继承的简单理解(第一种,原型链继承)
- JS面向对象组件 -- 继承的其他方式(类式继承、原型继承)
- js 继承 三种常用方法 原型链-借用构造函数-组合式继承
- javascript中的继承(JS基于原型链的继承),以及JS中的call和apply函数
- JS 原型继承
- js原型继承的两种方法对比介绍
- JS 原型继承1
- #笔记#圣思园 JavaWeb 第57讲——JS继承:对象冒充、call方法、apply方法、原型链方式、混合方式
- js原型链与继承解析(初体验)
- js核心基础之理解原型对象以及原型继承(一)
- 浅谈js函数继承模式之三:共享原型模式
- js构造函数,原型对象,继承 (1)
- JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链
- JS原型和继承
- node.js javascript理解原型继承
- js继承,各种继承的优缺点(原型链继承,组合继承,寄生组合继承)
- js面向对象编程,原型继承1