• JS创建对象的四种简单方式 (工厂模式和自定义构造函数创建对象的区别)



    // 对象:特指的某个事物,具有属性和方法(一组无序的属性的集合)
    // 特征------>属性
    // 行为------>方法

    // 创建对象的四种方式

             1 // 1.字面量的方式,就是实例化对象

     2 
     3 var stu1={
     4 name:"小明",
     5 age:20,
     6 ID:20181111,
     7 sex:"男",
     8 eat:function(){
     9 console.log("吃烩面");
    10 },
    11 readBook:function(){
    12 console.log("平凡的世界");
    13 }
    14 };
    15 
    16 // 2.调用系统的构造函数
    17 
    18 var stu2=new Object();
    19 stu2.name="小红";
    20 stu2.age=19;
    21 stu2.ID=20181112;
    22 stu2.sex="女";
    23 stu2.eat=function(){
    24 console.log("吃米饭");
    25 };
    26 stu2.readBook=function(){
    27 console.log("穆世林的葬礼");
    28 };
    29 //方式1、2 创建的对象没有propotype原型属性,3、4通过函数的形式创建的有prototype属性
    prototype属性:为一个特定类声明通用的变量或者函数
    不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在
    var Person = function(){};
     
    var p = new Person();
     
    alert(p.__proto__ === Person.prototype);//true
     
    31 // 3.自定义构造函数的方式
    32 
    33 function Student(name,age,ID,sex){
    34 this.name=name;
    35 this.age=age;
    36 this.ID=ID;
    37 this.sex=sex;
    38 this.sayHi=function(){
    39 console.log("您好!");
    40 };
    41 }
    42 //创建对象--->实例化一个对象,同时对属性进行初始化。
    43 // 1.开辟空间存储对象
    44 // 2.把this设置为当前的对象
    45 // 3.设置属性和方法的值
    46 // 4.把this对象返回
    47 var stu3=new Student("小天",18,20181113,"男");
    48 
    49 
    50 // 4.工厂模式创建对象
    51 
    52 function student(name,age,ID,sex){
    53 var obj = new Object();
    54 obj.name=name;
    55 obj.age=age;
    56 obj.ID=ID;
    57 obj.sex=sex;
    58 obj.sayHi=function(){
    59 console.log("您好!");
    60 };
    61 return obj;
    62 }
    63 var stu4=student("小菊",21,20181114,"女");


    工厂模式和自定义构造函数创建对象的区别:

    推荐使用自定义构造函数的方法创建对象

  • 相关阅读:
    SharePoint 2010 产品六大功能模块
    转:USB主机控制器(Host Controller)--深入理解
    转:C#基础知识梳理
    SharePoint 2010 Logging Improvements
    列表不能在数据表视图中显示
    selenium driver.close()与driver.quit()区别
    启动远程主机上的项目
    linux命令:passwd修改用户密码
    no crontab for root
    10位和13位时间戳转换成时间字符串
  • 原文地址:https://www.cnblogs.com/itgezhu/p/11598075.html
Copyright © 2020-2023  润新知