美文网首页
创建对象

创建对象

作者: 月魂king | 来源:发表于2018-03-12 11:33 被阅读0次

1. 创建对象的几种模式

虽然Object构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。

  • 工厂模式
function createPerson (name, age, job) {
  var o = new Object();
  o.name = name;
  o.age = age;
  o.job = job;
  return o;
}
var person1 = createPerson('john', 23, 'police');
var person2 = createPerson('lily', 24, 'doctor');
  • 构造函数模式
function Person (name, age, job){
  this.name = name;
  this.age = age;
  this.job = job;
}
var person1 = new Person('john', 23, 'police');
var person2 = new Person('lily', 24, 'doctor');

以上两种方法存在几种不同之处:
<1 没有显式地创建对象
<2 直接将属性和方法赋给了this对象
<3 没有return语句
此外还应注意到函数名Person都是用的是大写字母P,按照惯例,构造函数始终都应该以一个大写字母开头,非构造函数应该以一个小写字母开头。
要创建Person的新实例,必须使用new操作符,以这种方式调用构造函数会经历以下四个步骤:
<1 创建一个新对象
<2 将构造函数的作用域赋给新对象(因此this就指向了这个新对象)
<3 执行构造函数中的代码(为这个新对象添加属性)
<4 返回新对象

  • 原型模式
    我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
function Person () {
    Person.prototype.name = 'john';
    Person.prototype.job = 'police';
    Person.prototype.age = 24;
    Person.prototype.sayName = function () {
    alert(this.name);
  }
}
var person1 = new Person();
person1.sayName();
var person2 = new Person();
person2.sayName();
  • 组合使用构造函数模式和原型模式
function Person (name, age, job) {
  this.name = name;
  this.age = age;
  this.job = job;
this.friends = ['Shelby', 'Count'];
}

Person.prototype = {
  constructor: Person,
sayName: function () {
    alert(this.name);
  }
};
var person1 = new Person('john', 23, 'police');
var person2 = new Person('lily', 25, 'teacher');
person1.friends.push('Van');
alert(person1.friends);
alert(person2.friends);

相关文章

  • 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/gepozxtx.html