js面向对象编程

一、面向对象编程

1.面向过程与面向对象

    1)面向过程:专注于如何解决一个问题的过程步骤,编程特点是由一个个函数去实现每一步的过程步骤,没有类和对象的概念。

    2)面向对象:专注于由哪一个对象来解决问题,编程特点是出现一个类,从类中拿到对象,由这个对象去解决具体问题。

    对于调用者来说,面向过程需要调用者自己去实现各种函数。而面向对象,只需要调用者了解对象中具体方法的功能,不需要了解方法中的实现细节。

2.面向对象的三大特征

      面向对象的三大特征继承、封装、多态。JS可以模拟实现继承和封装,但是无法模拟实现多态,所以JS是一门基于对象的语言,          而不是传统意义上的面向对象的语言。

3.类和对象的关系

    1)类是抽象的,对象是具体的(类是对象的抽象化,对象是类的具体化)

    2)类是一个抽象的概念,只能说类有属性和方法,但是不能给属性赋具体的。比如,人类有姓名,但是不能说人类的姓名叫什么。

二、Javascript对象的创建方法

1.var obj = {}//简单对象plainObject 对象字面量/对象直接量

2.构造函数(特点:大驼峰式命名规则)

1)系统自带的构造函数

    var obj = new Object();//相当于var object = {}

2)自定义函数封装

    // 函数里面加参数才能使函数自定义,可以随意改变函数中对应参数的数据,生产对象的时候必须得new对象

function Car(color){        this.color=color;        this.name = "BMW";        this.height = "1400";        this.lang = "4900";        this.weight = 1000;        this.health = 100;        this.run = function(){            this.health -- ;        }    }

登录后复制

    var car = new Car(“red”);

3.对象构造函数的内部原理3步

    1)在函数体最上面隐式的加上一个对象:var this = {}

    2)执行函数体中的内容

    3)隐式的返回this对象

    

三、包装类

1.原始值是不可能有属性和方法(undefined、null、number、boolean、string)

2.有些原始值经过包装类之后,可以进行调用   

        var num=123;//不是对象

        var num1=new Number(123);//是对象

3.隐式包装类的过程如下

  var num = 4;  num.len = 3;//隐式发生转换,新建一个数字对象,然后添加属性并赋值,最后删除这个对象,所以在执行过程中没有报错  console.log(num.len);//再新建一个数字对象,添加属性,所以最后输出为undefined          var str="abcd";  str.length=2;  console.log(str.length);  //输出为4,在输出时原始值str包装类之后输出的为new String('abcd').length,字符串自带length属性,所以输出长度为4

登录后复制

    推荐教程:《JS教程》

以上就是js面向对象编程的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2728290.html

(0)
上一篇 2025年3月7日 23:54:48
下一篇 2025年2月19日 05:49:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS 编码 5 个不良习惯,如何避免?

    在阅读JavaScript代码时,你是否有过这种感觉 你几乎不明白代码的作用? 代码使用了很多 JavaScript 技巧? 命名和编码风格太过随意? 这些都是不良编码习惯的征兆。 在这篇文章中,我描述了JavaScript中常见的5种不良…

    2025年3月7日
    200
  • JavaScript常用的数组方法

    some()方法 此方法检查数组至少有一个元素是否满足参数函数检查的条件。 // JavaScript to illustrate // lastIndexOf() method function isGreaterThan5(elemen…

    编程技术 2025年3月7日
    200
  • jQuery里面能不能写PHP方法?

    jQuery里面能不能写PHP方法? jQuery里面不能写PHP方法,jQuery是由JavaScript所写的一个快速、简洁的框架,而JavaScript和PHP是两种完全不同的语言,并且JavaScript是运行在前端的,PHP是运行…

    2025年3月7日
    200
  • 什么是跨域问题并且如何解决

    1.什么是跨域? 跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。 例如:a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,所进行的访问行动都是跨域的…

    2025年3月7日 编程技术
    200
  • JS如何实现实现超好看的3D烟花特效?(代码示例)

    本篇文章给大家通过实例介绍一下使用JS如何实现实现超好看的3D烟花特效?有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 废话不多说,直接上代码: nbsp;html>3D烟花 html,body{ margin:0p…

    2025年3月7日
    200
  • JS怎么实现简单轮播图特效?(图文详解)

    本文实例为大家分享了JS实现轮播图特效的具体代码,供大家参考,具体内容如下 知识点 轮播图思想: ① 建立一个全局变量索引,始终标记当前显示图片。② 根据当前图片的数量,动态创建下方的●图片指示器。③ 轮播图的初始状态为第一张图片在中间,剩…

    2025年3月7日
    200
  • JavaScript的技巧

    在 javascript 中 数组(array)随处可见,使用ecmascript 6 中的新特性 扩展运算符 我们可以做很多很棒事情。 1. 迭代一个空数组 JavaScript 中直接创建的数组是松散的,以至于会有很多坑。试着用数组的构…

    编程技术 2025年3月7日
    200
  • 箭头函数和普通函数区别

    前言 箭头函数是前端面试环节的一个高频考点,箭头函数是ES6的API,相信很多人都知道,因为它的语法比一般的函数更简洁,所以深受大家的喜爱。这是我们在日常开发中一直使用的API,但大多数同学对它的理解还不够,下面我们来详细了解下箭头函数的基…

    编程技术 2025年3月7日
    200
  • JS中深拷贝和浅拷贝区别?

    JS中深拷贝和浅拷贝区别? 两者的区别在于是否是真正获取了一个对象的复制实体,而不是引用,深拷贝在计算机中开辟了一块内存地址用于存放复制的对象,而浅拷贝仅仅是指向被拷贝的内存地址,如果原地址中对象被改变了,那么浅拷贝出来的对象也会相应改变。…

    2025年3月7日
    200
  • 详解js获取url参数值的方法

    js获取url参数值的方法 Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问。 hash:设置或返回从井号 (#) 开始的 URL(锚)。 host:设置或返回主机名和当前 URL …

    2025年3月7日
    200

发表回复

登录后才能评论