js进阶-深入对象-内置构造函数-包装类

一. 创建对象的三种方式

1.1 利用对象字面量创建对象
const p = {
	name:"kebi"
}
1.2 利用 new Object 创建对象
	// const obj = new Object()
    // obj.uname = 'maidi'
    // console.log(obj)
    const obj = new Object({ uname: 'maidi' })
1.3 利用构造函数创建对象

大写字母开头的函数
说明:

  1. 使用 new 关键字调用函数的行为被称为实例化
  2. 实例化构造函数时没有参数时可以省略 ()
  3. 构造函数内部无需写return,返回值即为新创建的对象
  4. 构造函数内部的 return 返回的值无效,所以不要写return
  5. new Object() new Date() 也是实例化构造函数
	// 1. 构造函数 
    function Person(uname, age) {
      this.uname = uname
      this.age = age
    }
    Person.sex = "99"
    // 2.new 关键字调用函数
    const p = new Person('老弟', 6)
    console.log(p)

实例化执行过程 说明:

  1. 创建新对象
  2. 构造函数this指向新对象
  3. 执行构造函数代码,修改this,添加新的属性
  4. 返回新对象

二. 实例成员&静态成员

静态成员 : 构造函数上的属性和方法称为静态成员(静态属性和静态方法)

实例成员: 实例对象的属性和方法即为实例成员(实例属性和实例方法)

	//  构造函数 
    function Person(uname, age) {
      // 省略实例成员
    }
	// 静态属性
    Person.eyes= 2
    Person.arms= 2
    // 静态方法
    Person.walk = function(){
    	// this指向Person
        console.log(this.eyes)
    }

说明:

  1. 构造函数的属性和方法被称为静态成员
  2. 一般公共特征的属性或方法静态成员设置为静态成员
  3. 静态成员方法中的 this 指向构造函数本身

通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员。

	//  构造函数 
    function Person(uname, age) {
      //实例对象中动态添加属性
      this.name = "kebi"
       //实例对象添加方法
      this.sayHi = function (){
       	 console.log("Hi")
      }
    }
 	// 实例化 p1是实例对象
 	// p1 实际就是 构造函数内部的this
 	const p1 = new Person()
 	console.log(p1)
 	console.log(p1.name)   // 访问实例属性
 	p1.sayHi()    // 调用实例方法
 	

说明:

  1. 实例对象的属性和方法即为实例成员
  2. 为构造函数传入参数,动态创建结构相同但值不同的对象
  3. 构造函数创建的实例对象彼此独立互不影响。
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值