文档章节

javascript 设计模式 第一章 笔记

Q_z
 Q_z
发布于 2014/12/14 01:30
字数 564
阅读 146
收藏 9

1.2若类型语言:
 javascript 3种元素类型:布尔值、数值型、字符串、
  对象类型和可执行代码的函数类型
    null、未定义类型。  

   原始数据类型按值传递,其他类型按引用传递
  
 数据类型的转换  原始类型可以进行类型转换 
  1.toString 方法可以把数值、布尔型转换为字符串
  2、parsefloat、parseInt函数可以把字符串转换为数值
  3.双重“非”可以把字符串、数值转换成布尔值
  var bool = !!num;


1.3 函数是一等对象
 函数是对象,
 1.可以当初变量和参数传递给其他的函数  
 2.可以作为返回值从其他的函数传出
 3.在运行时可以进行构造
 4.可以用function(){---} 语法创建匿名函数
  (functon(){
   var foo = 10;
   var bar =2
   alert(foot*bat)l

  })();


 5.匿名函数最用途是用来创建闭包。
  闭包概括:
   1.是一个受到保护的变量空间,由内嵌函数生成。
   2.函数级作用域,所以定义在函数的内部的变量外部不能访问,
   javascript作用域 又是词法性质的, 意味着函数运行在她定义她的作用域中不是在用调用它的作用域中,两个结合起来,就能把变量包裹在函数中,而对其加以保护,用来创建(类的私有变量)
    var test;
   (function(){

    var foo =10;
    var bar =2;
    test = function(){

     return foo*bar;
    }

   })();


1.4、对象的易变性
  1.可以为函数添加属性
  function displayError(msg){
   displayError.numtimes++;
  }
  2.可以为先前的你定义的类和实例化的地下进行修改
  function person(name,age){
   this.name = name;
   this.age = age;

  }

  prson.protype = function(){
   getName:function(){
    return this.name;
   }

  }

  person.prototype = function(){
   getAge:function(){
    return this.age
   }
  }
  /**
   * 创建对象
   */
  

  var alicer  = new Person ("alice",40)
  var bill  = new Person ("bill",30)

  /**
   * 修改类的方法
   */
  
  person.prototype.getGreenting  = function(){
   return "HI"+this.getName();
  }

  3.内省的概念 和反射 有时间需要好好阅读一下。  这个概念不太理解


1.5 继承

 1.javascript使用的是基于对象的原型式继承,用来模拟基于类的继承  


小结:

 使用的编程风格和选择的设计模式应该要与所要具体的工作相称。
   

 

© 著作权归作者所有

Q_z

Q_z

粉丝 18
博文 17
码字总数 14466
作品 0
成都
程序员
私信 提问
《JavaScript设计模式与开发实践》原则篇(2)—— 最少知识原则

最少知识原则(LKP)说的是一个软件实体应当尽可能少地与其他实体发生相互作用。这 里的软件实体是一个广义的概念,不仅包括对象,还包括系统、类、模块、函数、变量等。 单一职责原则指导我们...

嗨呀豆豆呢
2018/12/30
0
0
《JavaScript设计模式与开发实践》最全知识点汇总大全

系列文章: 《JavaScript设计模式与开发实践》基础篇(1)—— this、call 和 apply 《JavaScript设计模式与开发实践》基础篇(2)—— 闭包和高阶函数 《JavaScript设计模式与开发实践》模式...

嗨呀豆豆呢
01/04
0
0
JavaScript 中常见设计模式-单例模式

     单例模式两个条件   确保只有一个实例   可以全局访问   适用   适用于弹框的实现,全局缓存   实现单例模式      JavaScript 中的单例模式   因为 JavaScript 是无...

webstack前端栈
2018/05/19
0
0
《JavaScript设计模式与开发实践》模式篇(12)—— 装饰者模式

在传统的面向对象语言中,给对象添加功能常常使用继承的方式,但是继承的方式并不灵活, 还会带来许多问题:一方面会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之 改变;另一方...

嗨呀豆豆呢
2018/12/25
0
0
JS单例模式《JavaScript设计模式与开发实践》阅读笔记

此文仅记录本人阅读《JavaScript设计模式与开发实践》这个本时的感受,感谢作者曾探写出这么好的一本书。如有冒犯,如有错误,请联系本人:luogao_lg@sina.com处理。 这一章让我知道了单例模...

RoyLuo
2018/05/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

c++ 虚基类

c++ 虚基类 p556

天王盖地虎626
33分钟前
51
0
Java中的面向对象

一、面向对象 面向对象和面向过程的区别 过程就是函数,就是写方法,就是方法的一种实现。 对象就是将函数,属性的一种封装。用人们思考习惯的方式思考问题。 如何自定义类 修饰符 类名{ //成...

zhiruochujian
42分钟前
3
0
k8s删除Terminating状态的命名空间

背景: 我们都知道在k8s中namespace有两种常见的状态,即Active和Terminating状态,其中后者一般会比较少见,只有当对应的命名空间下还存在运行的资源,但是该命名空间被删除时才会出现所谓的...

Andy-xu
44分钟前
41
0
seata源码阅读笔记

seata源码阅读笔记 本文没有seata的使用方法,怎么使用seata可以参考官方示例,详细的很。 本文基于v0.8.0版本,本文没贴代码。 seata中的三个重要部分: TC:事务协调器,维护全局事务和分支...

东都大狼狗
57分钟前
25
0
Rust:最小化窗口后 CPU占用率高 (winit,glutin,imgui-rust)

最近试着用 imgui-rust 绘制界面,发现窗口最小化后CPU占用会增大。 查询的资料如下: https://github.com/rust-windowing/winit/issues/783 https://github.com/ocornut/imgui/issues/1151 ...

reter
今天
38
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部