JavaScript 对象和包装类

Stella981
• 阅读 709

对象的创建方法

  • {}

    var obj = {}

  • 系统自带的构造函数

    var obj = new Object()//Array()//Number()

  • 自定义的构造函数

    function Person(){

    }
    var person1 = new Person()

注:构造函数:大驼峰命名规则 TheFirstName

普通函数:小驼峰命名规则  theFirstName

构造函数内部原理(必须加New)

  • 在函数体最前面隐式的加上this={}

  • 执行this.xxx=xxx

  • 隐式的返回this

    function Person(name,age){ //var this={}; 隐式 this.name=name; this.age=age; //return this隐式 }
    var person1 = new Person("zhangsan",18)

注:构造函数显示返回对象,则返回对象

构造函数返回原始值,则不受影响,继续返回this

包装类

  • new String()
  • new Boolean()
  • new Number()

包装类之后就有属性和方法了,原始值没有属性和方法

var num =4;

//new Number(3).len=3; 销毁
 num.len=3;

//new Number(3).len=3; 销毁
console.log(num.len);

以上过程原始值可以访问属性。经历了隐式的包装类,每次包装完 销毁。

注:undefined和null不可以设置属性值

例1:

// var str = "abcd";
// str.length=2;
// new string("abcd").length=2 销毁
// console.log(str)//abcd

例2:

var str = "abc";
 str += 1;
var test = typeof (str);
 if (test.length == 6) {
      test.sign = "typeof的返回结果";
}
console.log(test.sign); //undefinde

typeof返回string字符串

---恢复内容结束---

对象的创建方法

  • {}

    var obj = {}

  • 系统自带的构造函数

    var obj = new Object()//Array()//Number()

  • 自定义的构造函数

    function Person(){

    }
    var person1 = new Person()

注:构造函数:大驼峰命名规则 TheFirstName

普通函数:小驼峰命名规则  theFirstName

构造函数内部原理(必须加New)

  • 在函数体最前面隐式的加上this={}

  • 执行this.xxx=xxx

  • 隐式的返回this

    function Person(name,age){ //var this={}; 隐式 this.name=name; this.age=age; //return this隐式 }
    var person1 = new Person("zhangsan",18)

注:构造函数显示返回对象,则返回对象

构造函数返回原始值,则不受影响,继续返回this

包装类

  • new String()
  • new Boolean()
  • new Number()

包装类之后就有属性和方法了,原始值没有属性和方法

var num =4;

//new Number(3).len=3; 销毁
 num.len=3;

//new Number(3).len=3; 销毁
console.log(num.len);

以上过程原始值可以访问属性。经历了隐式的包装类,每次包装完 销毁。

注:undefined和null不可以设置属性值

例1:

// var str = "abcd";
// str.length=2;
// new string("abcd").length=2 销毁
// console.log(str)//abcd

例2:

var str = "abc";
 str += 1;
var test = typeof (str);
 if (test.length == 6) {
      test.sign = "typeof的返回结果";
}
console.log(test.sign); //undefinde

typeof返回string字符串

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
C++中构造函数和析构函数
构造函数定义它是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。另外,一个类可以有多个构造函数,我们可以根据其参数个数的不同或参数类型的不同来区分它们(这就是构造函数的重载)特点1.构造函数的命名必须和类名完全相同;2.构造函数的功能主要用于在类的对象创建时定义
Stella981 Stella981
2年前
JavaScript中的类定义和继承实现
ES5中因为没有class关键字,所以创建类的方式是通过构造函数来定义的。我将一步步的用代码演示如何慢慢用原生的语法实现JS的类的定义和继承。希望大家喜欢。废话不多说,我们来看原生JavaScript定义类的方法。1\.最简单的类//类的构造函数functionPerson(){this.nam
Stella981 Stella981
2年前
Javascript中创建函数的几种方法
//工厂函数模式//无法解决对象识别问题functionperson0(name,age,job){varobjnewObject();obj.namename;obj.ageage;obj.jobjob;returno
Stella981 Stella981
2年前
Javascript定义类(class)的三种方法
在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象(又称"实例")共有的属性和方法。Javascript语言不支持"类",但是可以用一些变通的方法,模拟出"类"。一、构造函数法这是经典方法,也是教科书必教的方法。它用构造函数模拟"类",在其内部用this关键字指代实例对象。  function
Wesley13 Wesley13
2年前
C++ 类与结构体 构造函数 详细相关理解整理
说到构造函数,通常是将讲对象创建时编译器自动调用构造函数为对象初始化,也可以说是分配内存空间。 学习了构造函数相对其中牵涉到的一些点作下大概的了解和学习,整理一下只是点。这里主要说下 类与结构体的差异/类与结构体包含继承关系时的构造调用/类的初始化列表/默认构造函数/拷贝构造函数以及牵涉到的相关内容结构体和类的区别
Wesley13 Wesley13
2年前
C++构造函数详解(复制构造函数 也是 拷贝构造函数)
构造函数是干什么的该类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作,故:构造函数的作用:初始化对象的数据成员。构造函数的种类!复制代码(https://oscimg.oschina.net/oscnet/54a3f729e89451abb86a0bec4639
Wesley13 Wesley13
2年前
Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
静态代码块:用staitc声明,jvm加载类时执行,仅执行一次构造代码块:类中直接用{}定义,每一次创建对象时执行。执行顺序优先级:静态块,main(),构造块,构造方法。构造函数publicHelloA(){//构造函数}关于构造函数,以下几点要注意:1.对象一建立,就会调用与之相应的构造
小万哥 小万哥
8个月前
C# 面向对象编程进阶:构造函数详解与访问修饰符应用
C构造函数构造函数是一种特殊的方法,用于初始化对象。构造函数的优势在于,在创建类的对象时调用它。它可以用于为字段设置初始值:示例获取您自己的C服务器创建一个构造函数:csharp//创建一个Car类classCarpublicstringmodel;//创
小万哥 小万哥
7个月前
Java 构造函数与修饰符详解:初始化对象与控制权限
Java构造函数Java构造函数是一种特殊的类方法,用于在创建对象时初始化对象的属性。它与类名相同,并且没有返回值类型。构造函数的作用:为对象的属性设置初始值执行必要的初始化操作提供创建对象的多种方式构造函数的类型:默认构造函数:无参数的构造函数,如果用户
小万哥 小万哥
5个月前
C++ 构造函数实战指南:默认构造、带参数构造、拷贝构造与移动构造
C构造函数构造函数是C中一种特殊的成员函数,当创建类对象时自动调用。它用于初始化对象的状态,例如为属性分配初始值。构造函数与类同名,且没有返回值类型。构造函数类型C支持多种类型的构造函数,用于满足不同的初始化需求:默认构造函数:不带参数的构造函