在学习设计模式前必须要知道和掌握的***. 为类添加新方法: Function.prototype.method = function(name,fn) { this.prototype[name] = fn; } //改进版:支持链式调用 Function.prototype.method = function(name,fn) { this.prototype[name] = fn; return this; } 函数是一等对象,可以存储在变量中,可以作为参数传给其他函数,可以作为返回值从其…
写这篇有关继承的文章时,突然想起,几天前的面试.因为习惯在学习知识的时候加上自己的理解,很喜欢用自己话来解释,于是乎当面试被问起继承原理时,噼里啪啦一大堆都是自己组织的话,(也可能是因为个人紧张.外加是电面,各种因素掺杂,导致了表述不清),不管怎么然后面试官就被迷茫了.so sorry~私下里可以用“俚语”解释给自己听,一上场面还是需要“官方官言”的.这也算是一种态度. 依然相信绝大多数东西的存在都是有原因的.~ 为什么要继承? 减少重复性的代码,并且尽量弱化对象间的耦合. 类式继承 通过用函数…
下面全面介绍封装和信息隐藏. 通过将一个方法或属性声明为私用的,可以让对象的实现细节对其它对象保密以降低对象之间的耦合程度,可以保持数据的完整性并对其修改方式加以约束.在代码有许多人参与设计的情况下,这也可以使代码更加可靠.更易于调试. 不像其它语言,javascript中没有类似private这种关键字.我们将使用闭包的概念来创建只允许从对象内部访问的方法和属性. 封装之利:封装保护了内部数据的完整性.通过将数据的访问途径限制为取值器和赋值器这两个方法,可以获得对取值和赋值的完全控制.通过只有…
1.面向对象模式: https://m.jb51.net/article/74549.htm 2.面向对象基础篇 http://www.cnblogs.com/chiangchou/p/js-oop1.html 实例篇 http://www.cnblogs.com/chiangchou/p/js-oop2.html 继承 http://www.cnblogs.com/chiangchou/p/js-oop3.html 3.彻底理解js面向对象之继承 https://www.jb51.net/ar…
学习了一天的面向对象总结一下,共分为三类 - -! 老规矩 第一部分是概念性知识!!! 面向对象编程,我们可以把他想象成我们在造人.一个对象便是一个人,这个人有胳膊有腿,这便是一个对象的属性或者方法..然后再通过用户的操作指令(click,hover等)来调用我们的js(我们制造的小人),控制我们的小人来执行不同的动作! #_# 貌似我解释的够抽象... 当然了面向对象最大的优点就是复用性强.节省代码.提高开发效率.下来来完成我的处女作文章... 1.工厂模式 - -# 学习了这个模式真的挺受教…
原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数据属性和访问器属性. 1.数据属性又包含 Configurable //表示能否通过delete删除,默认为true: Enumerable //表示能否通过for-in循环返回属性,默认为true; Writable  //表示能否修改属性的值,默认为true; Value            …
javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会改变数组的大小的,例如: var array=[1,2,3]; console.log(array.length);//输出array的长度为3 array.length=5;//给array的长度赋值为5,此时array的内容变为[1,2,3,undefined,undefined] consol…
纯属笔记,加强记忆,不是教程,欢迎纠错,没有逻辑,不太适合学习使用. -------------- 继承多态等太多概念难以理解,还是从实践中慢慢学吧!争取能大致看懂网上的开源的代码. -------------- 对象的组成:方法和属性 属性关键词:静止的,状态 方法关键词:动态的,过程,处理,带括号 -------------- js中的面向对象不是其他语言那样的面向对象. <script type="text/javascript"> //定义arr为一个数组(数组也是…
在codefordream上进入中级学习后,感觉立马从js的基础学习往前跳了好远,上面的东西好像都是第一次看到一样.这时候才发现,说来也曾接触过js,但是这时候才发现对js的认识就停在知道两点:js中用var定义变量,用function定义函数!这时候有点羞愧了,说来真是对不起老师们的教导!之前接触js是用于编写网页,当时在dreamwever上编写网页很多功能都没有自己动手用函数实现,而是直接拖动组件等方法创建的,导致好像真的除了看到过js代码,自己还真的居然没有写过! 中级部分主要有:代码运…
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 a.在前面的章节中,我们创建对象的方式有两种:new Object() 和 对象字面量: //1.new Object() 创建对象 var person1 = new Object(); person1.name = "ry"; person1.age = 21; //2.对象字面量 v…