JavaScript 的面向对象主要观点

我的第一篇博客    

之前进修了JavaScript,然则面向对象部份一向没有时候去学,搁了良久,预计有大半年了吧。近来又花了点时候进修了一下,很谢谢韩顺平先生的视频,让我受益不浅,假如说我在IT行业中有偶像的话,那就是你了。

一向支撑!

JavaScript并不比php简朴,他的面向对象也是有许多东西的,没有人带,本身学是很轻易犯晕的。
下面是一些观点的对照
1.基于对象(能够理解为就是面向对象)
2.原型对象(能够理解为就是类),有许多内置的原型对象(类),Array,Number等。
下面的各个点中晓得这个叫法的意义就好了

3.封装,它的封装只要公然的和私有的(相当于其他言语的public和private)
在类内里,有this挪用的属性和要领是公有的,没有this就是私有的
function Person(){

this.age=33; 
var name='freeda';  
nickName='hahaha';  

}
4.哪一个对象实例挪用了this地点的函数,this就代表哪一个对象实例
5.继续,继续体式格局:经由过程对象假装来继续的。先将类(原型对象)赋值给子类的一个属性,实行这个属性。
下面类Freeda继续类Person

function Person(age){
    this.age=age;
    this.speak=function(){
        alert("speak");    
    }
}
function Freeda(){
    this.people=Person;
    this.people(23);//js是动态言语,假如不实行这一句就不能继续,要用到再就实行,不然就不实行,不会先编译好给我们
}
var freeda=new Freeda();
freeda.speak();
alert(freeda.age);

6.多态:一个援用的范例在差别情况下的多种状况。
js实际上是无态的,一个变量的范例是在运转的过程当中由js引擎来决议的。所以js就是生成支撑多态。

function Person(age){
    this.age=age;
    this.speak=function(){
        alert("person speak");    
    }
}
function Cat(age){
    this.age=age;
    this.speak=function(){
        alert("cat speak");    
    }
}
//下面的object在变,之前是Person类的对象,厥后是Cat类的对象,看组织函数
var object=new Person();
object.speak();
alert(object.constructor);
var object=new Cat();
object.speak();
alert(object.constructor);

7.因为每次new一个对象都要建立一个类内里的要领,如果有许多的对象,那就要许多的要领(代码段),如许不划算,所以有了原型prototype。这个类的每一个对象共用一个代码段。而不是每次在内存的堆建立一个一样的要领。
在类的表面建立原型
Person.prototype.speak=function(){};
8.对象在内存中的存储机制跟php一样,接纳机制(GC,Garbage Collection)也一样,没有被援用就会被接纳。
浏览器内部有一个js引擎,管理者一张表,记录著每一个对象被援用的次数,当次数为0时,就接纳该对象
9.闭包:闭包就是处置惩罚一个对象的属性,什么时候被gc接纳的题目

    原文作者:huangfohai
    原文地址: https://segmentfault.com/a/1190000004067291
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞