js对象--自定义构造函数、原型链、继承、拷贝

本文介绍了JavaScript中如何通过构造函数模拟类,并详细阐述了对象的创建、使用方法,特别是自定义构造函数的创建和实例对象的图解。文章深入探讨了原型和原型链的概念,包括它们的目的、作用、使用方式以及改变prototype的指向。此外,还讲解了JavaScript中的继承机制,包括原型继承、借用构造函数和组合继承,旨在节省内存、解决代码冗余和数据共享问题。
摘要由CSDN通过智能技术生成

js对象–自定义构造函数、原型链、继承、拷贝

js是一门基于对象的语言,对象是一个很重要的知识点,本文是我个人对于js对象的理解。


类(class)—js中构造函数就可以模拟class

类其实是人类对事物进行分类而得出来的类别,比如:老虎,人类,学生,这些都是类,那么 ,在代码中,我们把拥有共同特征的东西,并把这些特征抽取出来设为一个类,在js中,并没有类的概念,因为它不是面向对象语言,但他可以模拟类;


对象(object)

对象其实就是具体的事物,比如:你家的猫,某某某人。
他有自己的特征(属性)和行为(方法);

创建对象

js创建对象有下面三种方式:

  • 通过系统构造函数创建:var obj = new Object();
  • 通过字面量的方式创建:var obj1 = {};
  • 通过自定义构造函数创建(Person就是自定义的构造函数):var obj2 = new Person();

对象使用方法

  • 通过.的方式赋值、取值:
var obj.name="小羊";
var name = obj.name;//name="小羊"
  • 通过[]的方式赋值、取值:
var obj["name"]="小羊";
var name = obj["name"];//name="小羊"
  • 对象在内存中的存储方式:
    对象是引用数据类型的具体数据储存在堆里,地址储存在栈里,我们获取的是地址,然后通过地址来取值、赋值,具体如下图:
    对象存储方式

自定义构造函数

构造函数名一般首字母为大写,便于区分,函数内部通过this来给属性和方法赋值;
通过new来创建实例对象

var Person =function(name,age){
   
    this.name = name;
    this.age = age;
    this.eat = function(){
   
        console.log(this.name+"在吃饭");
    }
};
var per = new Person("小羊",20);
console.log(per.name);//小羊
console.log(per.age);//20
per.eat();//小羊在吃饭

也可以通过.或[]方法给实例对象添加额外的属性和方法:

per.sex = "女";
per.sleep = function(){
    console.log(this.name+"在睡觉");
};
console.log(per.sex)<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值