资讯专栏INFORMATION COLUMN

JavaScript 的面向对象重要概念

songjz / 3050人阅读

摘要:我的第一篇博客之前学习了,但是面向对象部分一直没有时间去学,搁了很久,估计有大半年了吧。一直支持并不比简单,他的面向对象也是有很多东西的,没有人带,自己学是很容易犯晕的。这个类的每个对象共用一个代码段。

我的第一篇博客    

之前学习了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回收的问题

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78228.html

相关文章

  • Javascript面向对象编程

    摘要:如果要理解基于原型实现面向对象的思想,那么理解中得三个重要概念构造函数原型原型链对帮助理解基于原型的面向对象思想就显得尤为重要。函数对象的原型在中,函数是一种特殊的对象,所有的函数都是构造函数的实例。 介绍 和java这种基于类(class-base)的面向对象的编程语言不同,javascript没有类这样的概念,但是javascript也是面向对象的语言,这种面向对象的方式成为 基...

    wanglu1209 评论0 收藏0
  • 理解JavaScript核心知识点:原型

    摘要:首先,需要来理清一些基础的计算机编程概念编程哲学与设计模式计算机编程理念源自于对现实抽象的哲学思考,面向对象编程是其一种思维方式,与它并驾齐驱的是另外两种思路过程式和函数式编程。 JavaScript 中的原型机制一直以来都被众多开发者(包括本人)低估甚至忽视了,这是因为绝大多数人没有想要深刻理解这个机制的内涵,以及越来越多的开发者缺乏计算机编程相关的基础知识。对于这样的开发者来说 J...

    iKcamp 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    李昌杰 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    Lyux 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    AaronYuan 评论0 收藏0

发表评论

0条评论

songjz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<