哈哈,面向对象的创建居然学了这么久,不废话。首先是创建面向的对象的方式。最常用的构造函数和原型模式混合。对于方法使用原型模式,对于属性使用构造函数的方式。。为什么要组合这两种方式呢,是因为通过原型模式创建引用类型的值的时候。创建实例时这个引用类型的值更改,会影响到其他实例。继承,es5使用原型链来继承。继承是通过创建一个对象的实例,并赋给另一个对象的prototype实现的。结果是原来存在于实例中的所有方法和...
js面向对象的特点:继承(inheritance):对象方法和属性的继承多态(polymorphism):组件开发抽象(abstract):抓住核心问题封装(encapsulation):把功能写出方法面向过程式切换面板实现:<!DOCTYPE HTML><html><head><meta charset="utf-8"><title>切换面板</title><style>#div1 input {background: white;}#div1 input.active {background: yellow;}#div1 div {width: 200px;height: 200px;background: #CCC;display: none;}</style...
一:基本概念1、字面意思是摇树,一句话:项目中没有使用的代码会在打包时候丢掉。分为css的tree shaking和js的tree shaking。2、使用场景:1)常规优化。2)使用第三方库,但是只使用了部分功能。二:JS tree shaking在webpack4中已经移除了UglifyJsPlugin,只需要配置mode为"production",即可显式激活 UglifyjsWebpackPlugin 插件。下面说的是webpack3.10.0的实现方法:(1)常规业务的tree shaking1、webpack.config.js配置con...
下面是对此知识的系统介绍(转自互联网): Javascript 是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进 行读、写和删除,就象在VB、VC等高级语言中经常做的工作一样。怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用 Javascript语言进行文件操作。 一、功能实现核心:FileSystemObject 对象 其实...
1. 事件循环JS是单线程执行的(浏览器渲染进程的渲染主线程),它怎么处理各种各样的异步操作和事件呢?最早的方案是回调,如SetTimeout来设置定时器,通过XmlHttpRequest(ActiveXObject)来异步下载文件或调用后端API,如Node中可以使用readFile来读取文件,他们都是通过传入回调函数,当浏览器和Node执行完了之后把返回的数据作为参数给回调函数进行调用。那么多的事件,诸如有触发绘制页面的事件,有鼠标点击、拖拽、放大缩小的...
Ext JS提供了大量的功能来使类的创建和处理变得简单,还提供了一系列的功能来扩展和重新现有的Javascript类。这意味着可以为类添加行为和创建属于自己的类,或者重写某些函数的行为。在本文,将展示如何实现特定主题类的重写。原文:http://www.sencha.com/blog/creating-theme-specific-overrides-in-ext-js/作者:Lee Boonstra Lee is a technical trainer at Sencha. She’s located in Ams...
转载的:转自阮一峰的博客:http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html一、回调函数这是异步编程最基本的方法。假定有两个函数f1和f2,后者等待前者的执行结果。 f1(); f2();如果f1是一个很耗时的任务,可以考虑改写f1,把f2写成f1的回调函数。 function f1(callback){ setTimeout(function () { // f1的任务代码 callback(); }, 1000); }执行...
/*JavaScript和其他的语言类似,也是面向对象,自然也就是存在类和对象(对象是类的实例化)*///1、JS对象var empty = {}; //没有任何属性的对象var point = { x: 0, y: 0 }; //两个属性和值var point2 = { x: point.x, y: point.y } //复杂的属性和值var book = {"main title": "javascript", //属性名字中有空格,必须用字符串表示"sub-title": "The Definitive Guide", //属性名字里有连字符,必须用字...
因为es6语法不兼容部分浏览器,所以要对项目进行配置1.安装依赖npm install babel-loader @babel/preset-env @babel/core core-js -D //第一三方法安装这个npm install @babel/polyfill -D //第二个方法安装这个2.三种方法兼容(1)babel-loader @babel/preset-env @babel/core 兼容 只能兼容基本的语法,但是像是promise语法,无法进行兼容(2)兼容全部js语法 @babel/polyfill 在index.js中引入依赖即可 import ...
//页面加载完成后执行$(function () { getHW();});//当用户改变浏览器大小改变时触发$(window).resize(function () { setHW(); });//每500毫秒运行一次window.setInterval("getH()", 500);//获取页面的高度,并传给父页面的元素function getSubPageH() {var parentWorkDiv = $("#workDiv", parent.document);//工作区DIVvar parentLeftDiv = $("#leftDiv", parent.document); //左侧菜单DIVvar parentTopDiv = $("#topDiv", parent...
一、为什么需要事件监听?我们可不可以为同一对象的同一事件绑定多个事件处理程序呢?通过行内绑定和动态绑定是不可以的,但是可以通过事件监听来实现。window.onload = function() {// 动态绑定document.getElementById(‘btn‘).onclick = function() {alert(‘first‘);}// 动态绑定document.getElementById(‘btn‘).onclick = function() {alert(‘second‘);} }<input type="button" value="点击" id="btn">二、如何实现事件...
http://bbs.csdn.net/topics/390541081function isInclude(name){ var js= /js$/i.test(name); var es=document.getElementsByTagName(js?‘script‘:‘link‘); for(var i=0;i<es.length;i++) if(es[i][js?‘src‘:‘href‘].indexOf(name)!=-1)return true; return false;}alert(isInclude("abc.js"));alert(isInclude("efg.css"));原文:http://www.cnblogs.com/jcz1206/p/5305426.html
js基础知识点总结如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避免全局变量和方法(命名空间,闭包,面向对象),模块化(seaJs,requireJs)常用内部类:Data Array Math StringHTML属性,CSS属性HTML:属性.HTML属性="值";CSS:对象.style.CSS属性="值";class和float1.class:className2.float:cssFloat获取对象id:document.getElementById("id 名")事件...
IE8Disable(); function IE8Disable() {var browser = navigator.appName;var b_version = navigator.appVersion;var version = b_version.split(";");if (version.length > 1) {var trim_Version = parseInt(version[1].replace(/[ ]/g, "").replace(/MSIE/g, ""));if (trim_Version < 9) {alert(‘不兼容IE8以下的版本‘);//location.href = ‘http://www.onestopweb.cn/‘;return false;}};alert(‘符合‘); }原文:http://ones...
slice,substring,substr三个函数都是截取字符串,但是对参数的处理有区别参数处理相似的两个函数式slice和substringslice(start,end)和substring(start,end)他们两个的end都是原字符串的索引,意思为截取到end(不包括end)位置的字符二者的区别是:slice中的start如果为负数,会从尾部算起,-1表示倒数第一个,-2表示倒数第2个,此时end必须为负数,并且是大于start的负数,否则返回空字符串slice的end如果为负数,同样从尾部算起...