以前读书上java课的时候
天天要面向对象
然后我还记得
老师说去面试一定会被问面向对象的问题
然而
至今为止
我也就遇到一个人问过我这个问题
However
我一直也就待在一家公司里
面向对象语言的要求
一种面向对象语言需要向开发者提供四种基本能力:
封装 - 把相关的信息(无论数据或方法)存储在对象中的能力
聚集 - 把一个对象存储在另一个对象内的能力
继承 - 由另一个类(或多个类)得来类的属性和方法的能力
多态 - 编写能以多种方法运行的函数或方法的能力
每次写js 好像就是 everything is 对象
但是写起来又乱七八糟 代码好坏层次不齐
可能还没有掌握面向对象编程
虽然我对象常常都面对着我在编程
一般我们如果写一个计时器
这样看着好像很不错了
想要调用方法就timer.f_timer() 一下 然后获取timer.n
但是实际想想
timer 里面的属性跟timer 也没有什么区别,他们的可访问性跟timer是一样的
如果timer是全局,里面的属性也是全局的
要改里面的n 随便改改
所以一般情况下
会这样写
可是这样写就又不是很好
timer1.f_time 和 timer2.f_time 的是互相独立的
每使用 new 运算符调用 timer()
就会生成一个新的对象并生成一个新的函数绑定在这个新的对象上
每构造一个新的对象
浏览器就要开辟一块空间
其实最好就是 timer1.f_time 和 timer2.f_time 指向同一个函数对象
然后就要用到
原型 prototype
原型 prototype f_times 依赖的是timer 而不是time1跟time2
但是奇怪的事情就是这样的
大多数
我还是用最上面那种写法
ps:早睡早起,常做运动,多与异性交朋友~