1、面向对象
封装,继承
工厂原型都有问题 请看转帖的
使用混合模式来实现面向对象
注意使用了
prototype
来实现继承,函数里面定义属性。函数的prototype来定义方法。为了区别普通函数和构造函数,构造函数首字母大写。
混合写法:构造函数放属性,原型放方法。
shared
2、闭包
简单一句话,就是函数可以再不声明变量时,可以调用到函数外的变量(非全局变量)
详细的有时间补上。
3、iframe
var iframe = document.getElementById('iframe'); //iframe
contentDocument获取iframe里面的document如果不支持就是 iframe.contentWindow.document;var doc = iframe.contentDocument || iframe.contentWindow.document; // W3C || IE //编辑器的document
var win = window.frames['iframe'];//编辑器的window
doc.designMode = 'on'; 只有document类型的节点才有designMode 如果是body应该用contenteditable
4、焦点
$(iframe._window).focus(); //window获得焦点
$(iframe._document.body).focus(); // body获得焦点 $(iframe._iframe).focus();//FF必须先要得到焦点不然插入后没有光标了。body能获得焦点,把一个网页的body.contenteditable = 'true'
就可以获得焦点了。 iframe.contentWindow.focus(); window也可以获得焦点以上有不起作用的浏览器就一起上
5、range
ie9以后开始支持
(如果点开没有就搜索)
创建range
var selection = editor._iframe.contentWindow.getSelection();
if (selection && (selection.rangeCount > 0)) { range = selection.getRangeAt(0); } else { range = editor._document.createRange(); }
6、selection
7、bookmark
ie的一中书签,记录光标的位置
8、this
当前的方法属于谁,this就是指谁 除了在函数面前有new的时候 (智能社就是前端开发培训,北京最具深度和口碑的JavaScript、HTML5培训,专注于让学员获得快乐的学习体验并找到高薪工作的培训)因为听了好多智能社的视频,所以免费给他们 做广告)
亚当学院 说的 this并不一定是函数本身所属的对象。this只是在任意object和function元素结合时的一个概念。(亚当学院也有好多视频教程,但官方的网站不维护了,自己百度吧)
其中call可以改变this 在模拟继承中要用到
function getArea(w,h)
{ getZC.call(this,w,h); }getArea 获取面积想要继承获取周长的方法