js面向对象
zerofine
这个作者很懒,什么都没留下…
展开
-
js继承
js的继承是实现继承,是通过原型链实现的。首先我们知道每个函数的实例都有一个指向该函数原型的指针,当我们让子类的原型等于父类的实例时会发生什么 呢?Studeng.prototype = new Person();我们都知道原型是可以共享的,继承就是为了让子类所有对象实现父类的属性和方法,所以等号左边是子类的原型,当等于父类的实例时,就可以找到通往父类原型的路,这时新原型拥有父类实例所有的属性原创 2014-09-09 14:32:10 · 747 阅读 · 0 评论 -
js面向对象类
类:其实可以有4种主流模式实现,但是每种都有优缺点,最后组合模式胜出。1.工厂模式:由来就是使用这种模式我们可以复用大量的代码,类嘛,本来就是为了实现对世间万物复用的模板是吧。实现其实就是简单的在一个方法里面声明一个对象,添加对象的属性和方法,然后返回对象。优点:实现代码复用;缺点:无法判别对象属于哪个类。2.构造函数模式:首先默认方法名称首字母大写,声明要使用new; 例如:var us原创 2014-09-09 14:09:44 · 548 阅读 · 0 评论 -
js闭包
闭包里面保存着外部函数的活动对象的引用,所以如果这个闭包不结束,这些活动对象也不会被内存收回,优点时某些时候我们可以利用这个延长变量在内存中的时间,缺点是内存大大的占了,影响性能啊。而且ie9之前使用引用计数法收集垃圾,在html和js对象之间很容易造成内存的泄露屁,所以慎用闭包啊。闭包在想要私有变量的时候有用,jquery插件里面全是闭包。原创 2014-09-09 16:16:12 · 718 阅读 · 0 评论 -
js作用域链中变量提前的问题
js访问变量是从内到外,这条作用域链上面的每个活动变量也是从内到外的,比如一个函数,首先由arguments和函数内部声明的变量,然后是外层的能访问的变量,直至最后window全局对象,当出了这个函数,很熟内部声明的活动对象就会销毁,所以外部滴根本无法访问函数内部声明的对象的。之所以说js会把所有的变量提前也是针对不同的作用域的,在最外面,则是把所有的全局变量和全局的函数声明提前,在函数内部,则是原创 2014-12-23 17:24:58 · 773 阅读 · 0 评论 -
关于js基础容易忘记的那些事儿
1.Number()通过这个函数转化后的值只有两个:数值和NaN,通过parseInt也能转化为数值,但是像“134df”转化后的值为134,而Number("134df")则是NaN;2.String()转化成字符的方法有两种:调用toString()和String(),通过String()转化后有5种类型:字符串;"true"或者"false";null;undefined;数值。原创 2014-12-23 11:09:37 · 886 阅读 · 0 评论