美文网首页
创建对象

创建对象

作者: LuckyFBB | 来源:发表于2018-10-04 14:43 被阅读0次
  1. 工厂模式
    发明一种函数,用函数来封装以特定接口创建对象的细节。
function createPerson(name,age,job) {
    var o=new Object();
    o.name=name;
    o.age=age;
    o.job=job;
    o.sayName=function(){
        alert(this.name)
    }
    return o;
}
  1. 构造函数模式
function createPerson(name,age,job) {
    this.name=name;
    this.age=age;
    this.job=job;
    this.sayName=function(){
        alert(this.name)
    }
}
不同之处:没有显式创建对象
         直接将属性和方法赋给this对象
         没有return语句

使用new操作符,会经历四个步骤

1.创建已给新对象
2.将构造函数的作用域赋值给新对象
3.执行构造函数中的代码
4.返回新对象

var new1 = function(fun){
    var newObj = Object.create(fun.prototype);
    var returnObj = fun.call(newObj);
    if(typeof returnObj === 'object'){
        return returnObj
    }else{
        return newObj
    }
}
  1. 原型模式
    创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象。
function Person(){
}
Person.prototype.name='FBB';
Person.prototype.age=12;
Person.prototype.job='Student';
Person.prototype.sayName=function(){
    alert(this.name)
}
Person.prototype.constructor==Person
使用hasOwnProperty()方法来判断什么时候访问实例属性,什么时候访问原型属性。
但是原型中所有的属性都是共享的,这种共享适合函数,不太适合包含引用类型值的属性。
  1. 组合使用构造函数模式和原型模式
    构造函数模式用于定义实例属性,原型模式用于定义方法和共享属性。
function Person(name,age,job){
    this.name=name;
    this.age=age;
    this.job=job;
    this.friends=['TQQ','LWZ'];
}
Person.prototype={
    constructor:Person,
    sayName:function(){
        alert(this.name)
    }
}
实例属性都是在构造函数中定义的,而所有的实例共享属性都在原型中定义。

相关文章

  • javascript面向对象解析(一)

    创建对象的方式 json对象方式创建对象 Object方式 声明构造函数方式,创建对象 -- 这种创建对象的方式用...

  • JS对象

    JS 创建对象 批量创建对象

  • JavaScript基础—对象

    概论 对象基础 创建对象 利用字面量创建对象: 使用对象 利用new Object创建对象 使用对象方式与上面完全...

  • JS 创建对象的四种方式

    通过对象字面量来创建 通过 new Object() 创建对象 通过工厂函数来创建对象 通过构造函数来创建对象 工...

  • JS笔记-006-JS对象-数字-字符串-日期-数组-逻辑

    JS对象 创建 JavaScript 对象 通过 JavaScript,您能够定义并创建自己的对象。 创建新对象有...

  • 创建对象

    1. 原始方法 2. 工厂方法 3. 构造函数 4. 原型函数 5. 混合构造函数\原型函数 6. 动态原型方法

  • 创建对象

    工厂方式 缺点:1.无法确定对象的类型(因为都是Object)。2.创建的多个对象之间没有关联。3.这个对象的属性...

  • 创建对象

    在ES5中 我们想创建一个对象,人。 我们想克隆多个相似的人怎么办?需要一个函数(资源)创造一个 对象模版(对象制...

  • 创建对象

    工厂模式发明一种函数,用函数来封装以特定接口创建对象的细节。 构造函数模式 使用new操作符,会经历四个步骤 原型...

  • 创建对象

    第三部分 创建对象 为类分配相应的空间,默认值为0。 id 变量名 = [类名 alloc]; 类名 *变量名 =...

网友评论

      本文标题:创建对象

      本文链接:https://www.haomeiwen.com/subject/gusxaftx.html