美文网首页
创建对象

创建对象

作者: YoungEvita | 来源:发表于2018-03-18 21:03 被阅读0次

1. 原始方法

var person = new Object();
person.name = "Andy";
person.age = "17";
person.sayName = function() {
    console.log(this.name);
};
person.sayName(); // Andy
var person = {
    name: "Andy",
    age: "17",
    sayName: function() {
        console.log(this.name);
    }
};
person.sayName(); // Andy

2. 工厂方法

function createPerson() {
    var person = new Object();
    person.name = "Andy";
    person.age = "17";
    person.sayName = function() {
        console.log(this.name);
    }
    return person;
}
var person = createPerson();
person.sayName(); // Andy
function createPerson(name, age) {
    var person = new Object();
    person.name = name;
    person.age = age;
    person.sayName = sayName;
    return person;
}
function sayName() {
    console.log(this.name);
}
var person1 = createPerson("Andy", "17");
person1.sayName(); // Andy
var person2 = createPerson("Lucy", "16");
person2.sayName(); // Lucy

3. 构造函数

function Person(name, age) {
    this.name = name;
    this.age = age;
    this.sayName = function() {
        console.log(this.name);
    }
}
var person = new Person("Andy", "17");
person.sayName(); // Andy

4. 原型函数

function Person() {}
Person.prototype.name = "Andy";
Person.prototype.age = "17";
Person.prototype.friends = new Array("Jack", "Tony");
Person.prototype.sayName = function() {
    console.log(this.name);
}
Person.prototype.showFriends = function() {
    console.log(this.friends);
}
var person1 = new Person();
var person2 = new Person();
person1.sayName(); // Andy
person2.sayName(); // Andy
person1.name = "Lucy";
person1.sayName(); // Lucy
person2.sayName(); // Andy
person1.showFriends(); //  Jack, Tony
person2.showFriends(); // Jack, Tony
person1.friends.push("Tom");
person1.showFriends(); // Jack, Tony, Tom
person2.showFriends(); // Jack, Tony, Tom

5. 混合构造函数\原型函数

function Person(name, age) {
    this.name = name;
    this.age = age;
    this.friends = new Array("Jack", "Tony");
}
Person.prototype.sayName = function() {
    console.log(this.name);
}
Person.prototype.showFriends = function() {
    console.log(this.friends);
}
var person1 = new Person("Andy", "17");
var person2 = new Person("Lucy", "16");
person1.sayName(); // Andy
person2.sayName(); // Lucy
person1.showFriends(); // Jack, Tony
person2.showFriends(); // Jack, Tony
person1.friends.push("Tom");
person1.showFriends(); // Jack, Tony, Tom
person2.showFriends(); // Jack, Tony

6. 动态原型方法

function Person(name, age) {
    this.name = name;
    this.age = age;
    this.friends = new Array("Jack", "Tony");
    if(typeof Person._initialized == "undefined"){
        Person.prototype.sayName = function() {
            console.log(this.name);
        }
        Person.prototype.showFriends = function() {
            console.log(this.friends);
        }
        Person._initialized = true;
    }else{}
}
var person1 = new Person("Andy", "17");
var person2 = new Person("Lucy", "16");
person1.sayName(); // Andy
person2.sayName(); // Lucy
person1.showFriends(); // Jack, Tony
person2.showFriends(); // Jack, Tony
person1.friends.push("Tom");
person1.showFriends(); // Jack, Tony, Tom
person2.showFriends();// Jack, Tony

相关文章

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