说明(2017-4-2 18:27:11): 1. 作为函数的参数,就是将函数的数据拷贝一份,传递给函数的定义中的参数. 函数foo()在调用的时候,做了两件事: (1)函数在调用的时候,首先需要将参数中的数据拷贝一份,即数字123拷贝一份. (2)跳转到函数的定义中(函数体),在此之前完成了函数的赋值,即num=123. (3)正式的进入函数内,准备执行函数的每一句话. function foo(num){} var a = 123; foo(a); 2. 值类型作为函数参数传递的特征,函数内…
说明(2017.3.30): 1. 使用软件diagram designer,DiagramDesignerSetup1.28.zip,很小只有1M多,我用的自带画图软件.教学视频是“JavaScript高级面向对象视频教程视频”02里的03,蒋坤主讲. 2. 题目: (1)var arr = [1,2,3]; (2)var o = {name: "张三", age: "19", children: [{name: "张1"}, {name: &…
Cp5基元类型引用类型值类型 基元类型 编译器直接支持的类型,基元类型直接映射到FCL中存在的类型. 作者希望使用FCL类型名称而避免使用关键字.他的理由是为了更加的清晰的知道自己写的类型是哪种.但是实际当中关键字更常用,FCL类型的写法太繁琐了.特别是你不用过多考虑和其他语言交互的时候,只使用C#的时候.所以这一点上我还是不同意作者的看法. 类型的隐式转换和显示转换过程中的可能存在的问题.checked,unchecked;来检查溢出: CLR并不认为Decimal是基元类型,所以执行速度要慢…
说明(2017.3.31): 1. 画图: var num = 123; var num2 = num; 值类型赋值的存储特点:将变量num内的数据全部拷贝一份,存储给新的变量num2,内存中有2个数据. 2. 画图: var o = {name: "张三"}; var obj = o; 引用类型赋值的特点:将变量o的引用(地址)拷贝一份,所以新的变量obj也指向了这个对象{name: "张三"},内存中只有一个数据. 但是这样有个问题,如果修改了obj里的name…
说明(2017.3.30): 1. 变量只存数据本身就是值类型,如var a = 123, var a = "123";  变量存的是一个引用,数据存在别的地方,就是引用类型,如数组var a = [1,2,3]. 对比冬天和夏天衣服,放在同一个衣柜里,和分别放在不同房间,告诉房间编号. 2.…
二.继承 OO是面向对象语言最为有魅力的概念.一般的OO语言都实现了两种继承,接口继承和实现继承.接口继承只继承方法签名,而实际继承继承了实际的方法. 而在JS中,函数没有签名,所以无法实现接口继承.只能依靠原型链--实现继承. 2.1原型链 JS中描述了原型链的概念,并利用原型链作为实现继承的主要方法. 其基本思想:利用原型链让一个引用类型继承另一个引用类型的属性和方法. functionSuperF(){ this.superPropty ='B'; } SuperF.prototype.g…
说明(2017.3.28): 1. JavaScript是一种基于对象的多范式编程语言,不是面向对象,但离开对象不能活. 范式编程是指编程习惯.方式,分为过程式.对象式和函数式编程. 2. 面向对象是指,使用对象进行开发,面向对象是对面向过程的封装. 3. JavaScript面向对象的三个特点,抽象性.继承性和封装性. 抽象性是指,抽取出核心属性和方法,不在特定条件下不能确定对象的具体意义. 继承性是指,把我没有的属性和方法拿来使用,并变成自己的属性和方法. 封装性是指,把方法和属性打包成一个…
实现带参数.返回值类型声明的js函数: 类型定义:window.Str = Type.Str = Type.define('STRING', Type.isStr);var Per = Type.define('PERSON', function(p){    return p && p.type === 'person' && p.name;}); 定义函数:var addStr = Str(function(a, b){  return a + b;}, Str, St…
1.object var person={};//与new Object()相同 一般创建对象 var person=new Object(); person.Name="admin"; Json方式创建 var person={ Name:"admin", Age:23 }; object作为参数传递 function GetPerson(Person p){ alert(p.Name) } SetPerson({Name:"admin",Ag…
创建对象 继承 面向对象的语言都有一个表示---类.通过类我们可以创建多个具有相同属性的对象.但是,在JS中并没有类的概念,所以JS的对象也和其他语言的对象不同. 对象的定义:无序的属性集合,其属性可以包含基本值,对象,函数.(所以我们又可以把JS对象看成散列表,一组键值对.) 一.创建对象   1.1工厂模式 function createPerson(name,age){ var o =newObject(); o.name = name; o.age= age; o.sayName =fu…