之前有篇博客曾提到过一点js的面向对象编程:js面向对象编程. 这里就结合js高程详细剖析一下javascript的面向对象编程. 前序: 1⃣️Object.defineProperty() var obj = { _name:'jack' }; Object.defineProperty(obj,'name',{ configurable:false,//表示能否通过delete删除属性从而重新定义属性,默认值true value:'orange',//属性的数据值,默认值undefined…
第2章:在html中使用javascript ①script标签的defer属性 <script type="text/javascript" defer="defer" src="dmeo.js"></script> 这个属性的用途是表明脚本在执行时不会印影响页面的构造(立即下载,延迟执行),整个页面都解析完毕后再按顺序运行.(放在dom前面依旧会阻塞页面加载) ②script标签的async属性 <script…
在那个刀耕火种的年代,用过jQuery的都体会到了jQuery带来的便捷,尤其是元素选择器. jQuery(www.jquery.com)的核心就是通过 CSS 选择符查询 DOM 文档取得元素的引用,从而抛开了getElementById()和 getElementsByTagName(). 08年之前,针对dom操作,为了实现更多的功能,各大浏览器厂商会有一些专有的DOM扩展,此后W3C着手将一些已经成为事实标准的专有扩展标准化并写到规范中去. 其中包括两个主要的扩展:SlectorsAPI…
1⃣️递归 阶乘函数: function factorial(num){ ){ ; } ); } } 改装一:(arguments.callee指向正在执行的函数的指针,实现解耦) function factorial(num){ ){ ; } else { ); } } 改装二:(解决严格模式下不能使用arguments.callee) var factorial = (function f(num){ ){ ; } else { ); } }); 2⃣️闭包的作用域链 function cr…
看完<dom编程艺术>现在准备读进阶版的js高程了,由于篇幅较长,所以利用刚看完<dom编程艺术>学到的知识写了段JavaScript代码,来折叠各章的内容.并且应用到了<dom编程艺术>一直强调的“平稳退化”思想,即如果用户的环境不支持JavaScript,内容将不会折叠.够保证观看到内容. 第一章 DOM1级的目标主要是映射文档的结构 DOM2级在 原来 DOM的基础上又扩充了鼠标和用户界面事件.范围.遍历,而且通过对象接口增加了对 CSS(Cascading St…
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在结构化编程语言里,函数是基本的程序组成单元,一个程序由一个个函数组成: 在面向对象编程语言里,类才是程序的基本单元,方法是属于类或对象的,不能独立存在: Java语言里方法的特征主要在以下几个方面: 方法不能够独立的存在,方法只能够定义在类里面,所属与某个类或对象: 方法不能够被独立地执行,必须使用…
阅读此笔记前,请先阅读 <Effective C++>第二版笔记  和  <More Effective C++>笔记 这里只记录与上面笔记不同的条款,主要是 "面对对象+模板+内存管理" 三个方面 1.视 C++ 为一个语言联邦 可以分为 C.C with Object.Template C++.STL 四个次语言,不同次语言的高效编程守则可能不一样,比如 C 部分 pass-by-value 通常比 pass-by-reference 高效,而对于 Obje…
什么是面向对象编程? 我们先来看看几个概念: 面向过程程序设计 面向过程,是根据事情发展的步骤,按进行的顺序过程划分,面向过程其实是最为实际的一种思考方式,可以说面向过程是一种基础的方法,它考虑的是实际地实现,一般的面向过程是从上往下步步求精. 例如:如果你要吃饭,那需要:“买菜-洗菜-做饭-吃饭”等等,一步一步的来设计,就是面向过程…
目录: 一.概念 二.方法    2.1组合 2.2继承 2.3多态 2.4封装 2.5归一化设计 三.面向对象高级   3.1   反射(自省) 3.2   内置方法__getatter__, __setatter__, __delatter__ 3.3   二次加工标准类型 (包装/授权) 3.4   __getattribute__ 3.5   isinstance和issubclass 3.6   __getitem__ . __setitem__ . __delitem__ 3.7 …
  java7新加特性: 0B010101  二进制数 int c=0B0111_1111;   数值中使用下划线分隔 switch 支持String类型   字符串常量放在常量池 String s0="hello"; String s1="hello"; String s2="he" + "llo"; System.out.println(s0==s1); System.out.println(s0==s2);   数组:…