js对象的创建方式(小记)

共有三种方式:
第一种模式:工厂模式

  • 工厂模式:即在函数中创建对象时,所有属性使用参数传递进来
  • 工厂模式创建出来的对象使用typeof打印出来的全是object
function Student(name,age,sex,score){
    var stu = new Object();
    stu.name = name;
    stu.age = age;
    stu.sex = sex;
    stu.score = score;
    stu.sayHi = function(){
        console.log("我叫"+this.name+"今年"+this.age+"岁");
    }
    return stu;
}

var stu1 = new Student("zs",18,1,100);

第二种模式:构造函数模式

  • 原理:使用this关键字改变对象归属
  • 与工厂方式相比,使用构造函数方式创建对象,无需再函数内部重建创建对象,而使用this指代,并而函数无需明确return
  • this :指向构造函数;
  • 若函数中有rerun 返回值,new 方式返回的是什么值?
    -当return返回的是引用类型,则返回的是this
    -当return返回的是值类型,则返回的是值类型;
function Student(name,age,sex,score){
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.score = score;
    this.sayHi = function(){
        console.log("我叫"+this.name+"今年"+this.age+"岁");
    }
}

var stu1 = new Student("zs",18,1,100);

第三种模式:原型模式

  • prototype:是构造函数的原型属性。将属性或方法绑定到构造函数的prototype上后,将来通过构造函数创建的对象都有这个属性或方法
  • 使用:一般通过原型属性绑定公共的方法和属性
  • proto:是对象的原型属性
  • 对象的原型属性proto指向构造函数的原型属性prototype


function Student(name,age,sex,score){
this.name = name;
this.age = age;
this.sex = sex;
this.score = score;
}
Student.prototype.sayHi = function(){
console.log("我叫"+this.name+"今年"+this.age+"岁");
}
其中构造函数模式通常和原型模式混合使用,上边的例子就是混合的构造函数,原型方式。推荐使用这种方式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值