首页 > 编程语言 >方法定义,Date和JSON对象,及JavaScript式面向对象编程

方法定义,Date和JSON对象,及JavaScript式面向对象编程

时间:2023-04-05 22:48:33浏览次数:45  
标签:name 对象 age JavaScript JSON 面向对象编程 var now

一.方法

1.方法的定义

 

方法就是把函数放在对象里面,对象有两个东西:属性和方法

通过 对象名.方法名()使用

a.第一种方法定义

  <script>
    var setFun={
      name: "maming",
      birth: 2002,
      //方法 :被包含在对象之中
      age: function (){
        var now = new Date().getFullYear();
        return now - this.birth;
      }
    }
    alert(setFun.age());
  </script>

  方法的调用一定要带 ()

setFun.age();

b.第二种方法的定义

<script>
    function getAge(){
      var now = new Date().getFullYear();
      return now - this.birth;
    }
    var setFun={
      name: "maming",
      birth: 2002,
      //方法 :被包含在对象之中
      age: getAge
    }
    alert(setFun.age());
  </script>

  这里的this关键字指向的是getAge()的函数中的属性,但是getAge()中没有birth属性,所以这里执行不了

我们可以调用对象来解决:

    function getAge(){
      var now = new Date().getFullYear();
      return now - setFun.birth;
    }
    var setFun={
      name: "maming",
      birth: 2002,
      //方法 :被包含在对象之中
      age: getAge
    }
    alert(setFun.age());
  </script>

  这样改了以后就可以,就可以拿到那个属性了

2.apply方法:指向使用那个对象

在js中可以控制this的指向:

 <script>
    function getAge(){
      var now = new Date().getFullYear();
      return now - this.birth;
    }
    var setFun={
      name: "maming",
      birth: 2002,
      //方法 :被包含在对象之中
      age: getAge
    }
    alert(getAge.apply(setFun,[]));
  </script>

  getAge.apply(setFun,[  ] ); this指向了setFun对象,参数为空

 

二.内部对象

1.标准对象

typeof 123
'number'
typeof '123'
'string'
typeof true
'boolean'
typeof NaN
'number'
typeof []
'object'
typeof {}
'object'
typeof Math.abs
'function'
typeof undefined
'undefined'

 

2.Date对象

  <script>
    var now = new Date();  //Wed Apr 05 2023 20:44:18 GMT+0800 (中国标准时间)
    console.log(now);
    now.getFullYear();  //年
    now.getMonth();     //月  0~11 月  也是12个月
    now.getDate();      //日
    now.getDay();       //星期几
    now.getHours();     //时
    now.getMinutes();   //分
    now.getSeconds();   //秒

    now.getTime();     //时间搓    全世界统一1970-1-1 0:0
    console.log(now.getTime());  //1680698972333
    console.log(new Date(now.getTime()));   //Wed Apr 05 2023 20:49:52 GMT+0800 (中国标准时间)
  </script>

  获得本地时间:now.toLocaleString();

三.Json对象

Json是什么:

JSON 是一种纯字符串形式的数据,它本身不提供任何方法(函数),非常适合在网络中进行传输。JavaScript、PHP、Java、Python、C++ 等编程语言中都内置了处理 JSON 数据的方法。
JSON 是基于 JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集,是一种开放的、轻量级的数据交换格式,采用独立于编程语言的文本格式来存储和表示数据,易于程序员阅读与编写,同时也易于计算机解析和生成,通常用于在 Web 客户端(浏览器)与 Web 服务器端之间传递数据。

 

在JavaScript一切皆为对象,任何js支持的类型都可以使用Json来表示;

格式:

  • 对象都用{ ... }
  • 数组都用[ ... ]
  • 所有的键值对都是用 key:value
 <script>
    var user = {
      name: "mamaing",
      age: 18,
      sex: "boy"
    }
    //{name: 'mamaing', age: 18, sex: 'boy'}

    var jsonUser = JSON.stringify(user);  //将JavaScript转换为json字符串
    //  '{"name":"mamaing","age":18,"sex":"boy"}'

    var userJson = JSON.parse('{"name":"mamaing","age":18,"sex":"boy"}');  //将Json字符串转换为JavaScript对象
    //   {name: 'mamaing', age: 18, sex: 'boy'}
    //   age: 18
    //   name: "mamaing"
    //   sex: "boy"
    //   [[Prototype]]: Object

  </script>

 

Json字符串和js对象:

本质上两者没区别,毕竟靠json传值给后端的,他肯定不会改变js对象本质的值,因为稳定性好所以才都用json

Json是以字符串的形式传递的,所以是一个字符串类型

而被转换的js可以是对象,可以是数组,也可以是字符串,最后都是要转换为字符串的Json字符串的

源生的JSON两个方法:
  • JSON.stringify(   // JavaScript对象  );      //将JavaScript转换为json字符串
  • JSON.parse(   // Json字符串 );      //将Json字符串转换为JavaScript对象

四.面向对象的原型继承

1.什么是面向对象

面向对象编程的程序语言:

Java,JavaScript,C#,C++,python.......

但是JavaScript的面向对象与其它的面向对象有一些区别!

其它的面向对象:

看名字它是注重对象的。当解决一个问题的时候,面向对象会把事物抽象成对象的概念,就是说这个问题里面有哪些对象,然后给对象赋一些属性和方法,然后让每个对象去执行自己的方法,问题得到解决。

类:模板(是抽象的描述)

对象:具体的实例(实例化类,具体的实现者)

2.JavaScpirt的面向对象:

原型继承:__proto__  指向一个对象,就可以继承这个指向对象的属性和方法

<script>
    var Student ={
      name: "student",
      sex: "boy",
      run: function (){
        console.log(`${name} is running...`)
      }
    }
    var xiaoming ={
      name: "xiaoming"
    };
    xiaoming.__proto__ = Student;
  </script>

  

xiaoming.__proto__ = Student
{name: 'student', sex: 'boy', run: ƒ}
name: "student"
run: ƒ ()
sex: "boy"
[[Prototype]]: Object

 

原型的指向就像Java的父类一样,就像继承了父类的方法和属性,所以自己也可以使用

idea 2023.1 打不出 __ 长下划线!!!!

五.面向对象的Class的继承

class关键字是ES6新特性

1.ES6以前的新增方法

 <script>
   function Student(name){
       this.name=name;
   }
   //给student新增一个方法:需要找到它的原型才能增加
   Student.prototype.hello = function (){
       alert("hello");
   }
  </script>

 

需要找到对应函数的原型才能新增,

prototype:原型

2.ES6后,通过类定义和继承

定义一个类,和Java类似

 class Student{
      //构造器
      constructor(name) {
          this.name = name;
      }
      hello(){
          alert("hello");
      }
  }

 

值得注意的是JavaScript的构造器都是constructor()然后里面填属性(且只有这一个构造器);

Java的是类名来构成构造器(可以有多个,有参无参构造);

3.类的继承

  <script>
  class Student{
      //构造器
      constructor(name) {
          this.name = name;
      }
      hello(){
          alert("hello");
      }
  }
class xiaoming extends Student{
      constructor(name,grade) {
          super(name);
          this.grade=grade;
      }
      myFun(){
          alert("xiaoming");
      }
}
var xiao = new xiaoming("xiaoming",2);
  </script>

 

4.原型链

所有的原型都指向object

__proto__:Object

 

标签:name,对象,age,JavaScript,JSON,面向对象编程,var,now
From: https://www.cnblogs.com/5ran2yl/p/17291187.html

相关文章

  • JavaScript基础知识之——Location 对象详解
    属性描述location.hash设置或取得URL中的锚location.host设置或取得URL中主机(包括端口号)location.hostname设置或取得URL中的主机名location.href设置或取得完整URL(页面重定向应用)location.pathname设置或取得URL中的路径location.port设置或取得URL中的端口号location.......
  • JavaScript之函数,变量作用域,let(局部变量),const(常量)
    一.函数方法:面向对象特有的,它是对象的一部分,一个对象包含属性和方法函数:它的功能类似于方法,但是函数的写法是直接与类文件一体的,方法是包含在类文件中的,函数和类文件是一级目录JavaScript中的函数是包含在函数的定义方式一般用 function 来声明所有函数,他不同于其它高级语......
  • 关于python中使用json.loads()将字符串数据转换成字典
    在json模块中,我们可以经常会用到load()与loads(),其中两者的区别如下json.load()从json文件中读取数据转抱为dict类型json.loads()将str类型的数据转换为dict类型这里笔者主要说明json.loads()的用法,将字符串转转换成字典,如下str2dict.py脚本内容:importjsonJsonStr='''{......
  • 关于python中使用json.load()从json文件中读取数据转换成字典
    在json模块中,我们可以经常会用到load()与loads(),其中两者的区别如下json.load()从json文件中读取数据转抱为dict类型json.loads()将str类型的数据转换为dict类型这里笔者主要说明json.load()的用法,举例说明,如下有一json文件,ip-ranges.json,内容如下:这里我们将使用json.load(......
  • JavaScript中数组元素删除的七大方法汇总
    原文链接:https://blog.csdn.net/u010323023/article/details/52700770 在JavaScript中,除了Object之外,Array类型恐怕就是最常用的类型了。与其他语言的数组有着很大的区别,JavaScript中的Array非常灵活。今天我就来总结了一下JavaScript中Array删除的方法。大致的分类可以分为如下......
  • Javascript模块化编程(三):require.js的用法
    这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。我采用的是一个非常流行的库require.js。一、为什么要用require.js?最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分......
  • Python爬虫 execjs执行js报错json.decoder.JSONDecodeError: Expecting value: line 1
    fun=re.search(r'(__=\([\S\s]*?;)<',r_text).group(1)fun=fun+'functionget(){returnJSON.stringify(__.data)}'ctx=execjs.compile(fun)rdata=(ctx.eval('get()'))报错json.decoder.JSONDecodeError:Expectingvalue:line1col......
  • JavaScript快速入门(二)
    文件中引入JavaScript嵌入到HTML文件中在body或者head中添加script标签<script>varage=10;console.log(age);</script>引入js文件创建一个js文件varage=20;console.log(age);在html文件中src引入改文件<body><scriptsrc="./age.js"></scr......
  • 简单的CMakePresets.json解析 -- configurePresets
    ----CMake官方文档-----CMakeLists.txt是通用的c++项目管理文件,在不同的设备中,环境变量,编译器等都可能不同,将这些设置都交给CMakeLists.txt,并不是一个好办法。为了降低CMakeLists.txt的臃肿程度,简化其判断,可以针对不同设备,配置不同的CMakePresets.json.使得项目可以在......
  • JavaScript 弹出框(警告框、确认框、提示框)
    JavaScript有三种类型弹出框:警告框、确认框、提示框。一、警告框如果要确保信息传递给用户,通常会使用警告框。当警告框弹出时,用户将需要单击“确定”来继续基础语句 <script> //警告框 window.alert("成功弹出警告框!");//window.alert()方法可以不带window前缀。 ......