aardio 笔记 第八课 面向对象

面向对象原本单纯

Publish Time:2018/04/29 21:09:17

Update Time:2018/04/29 22:23:06

面向对象并非为了把编程搞得更复杂,现实中很多人把面向对象当成圣经,反而把一些原本简单的事情搞复杂了。


动态语言和静态语言:看变量指向内存中的地址是否变化。


namespace 与直接赋值的区别:namespace 不会重复赋值;是静态的。

赋值是动态的。


namespace object {
    str  = "abc";
    d = 123;
}
var object = {
    str = "abc";
    d = 123;
}


this:当前动态创建的实例。本质上是一个变量名。aardio里this 的数据类型为table




createObj = function () {
   var this = {
         str = "abc";
        close = function(){
             
        }
    }
    return this;
}


跟下面代码几乎等价


class object () {
    str = "abc";
    close = function(){           
    }
}

var obj1 = object();

var obj2  = object();

每次返回的是不同的副本。


构造函数ctor作用跟上述createObject函数一样:

不过通常这样写:

这样就是继承winform了


访问自己类的对象用this

在类里,owner跟this 可以一样用:

this 和owner的区别:

this 指“自己”, owner指.之前的对象。

owner是可以改变的,而this不变。

aardio中的owner类似js中的this;

类是一个构造器,同时也是一个名字空间。

类返回的对象是动态的;而名字空间是静态的。而且类可以直接写在库里。