学习:JS中创建自己的对象和在定义中包含方法

1.创建自己的对象

要创建自己的对象实例,必须首先为其定义一个构造函数。构造函数创建一个新对象,赋予对象属性,并在合适的时候赋予对象方法

// people 是有3个参数的构造器
function people(name, age, sex){
    // 属性:姓名
    this.name = name;
    // 属性:年龄
    this.age = age;
    // 属性:性别
    this.sex = sex;
}
// 定义了对象构造器后,用new运算符创建对象实例
var zhangsan = new people('张三', 18, '男');
var lisi = new people('李四', 19, '男');

可以给对象实例添加属性以改变该实例,但是用相同的构造器生成的其他对象实例中并不包括这些属性,除非你特意添加这些属性在其他实例中。

// zhangsan的附加属性
zhangsan.car = '奔驰';
console.log(zhangsan.car);
// lisi并没有添加car属性
console.log(lisi.car); // undefined

如果要将对象所有实例的附加属性显示出来,必须将它们添加到构造函数或构造器原型对象中。

// 将属性 eat 加到 people 原型对象
people.prototype.eat = '肉嘎嘎';
zhangsan.eat = '鸡肉';
console.log(zhangsan.eat); // 鸡肉
console.log(lisi.eat); // 肉嘎嘎

2.在定义中包含方法

可以在对象的定义中包含方法(函数)。一种方法是在引用别处定义的函数的构造函数中添加一个属性

// people 是有3个参数的构造器
function people(name, age, sex){
    // 属性:姓名
    this.name = name;
    // 属性:年龄
    this.age = age;
    // 属性:性别
    this.sex = sex;
    // 这里添加toString方法
    // 注意在函数的名称后没有加圆括号
    // 这不是一个函数调用,而是对函数自身的引用
    this.toString = peopleToString;

}

// 实际是用来显示people对象内容的函数
function peopleToString(){
    return "name:"+this.name+"\n"+
            "age:"+this.age+"\n"+
            "sex:"+this.sex;
}

var lisi = new people('李四', 18, "女");
console.log(lisi);

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值