LiYajie web前端

web前端-js对象创建的几种方式

2017-03-26  本文已影响24人  LiYajie

需求: 创建一本书

var book = {
    name:'js面向对象',
    author:'liyajie',
    price:100.00,
    showName:function(){
        console.log(this.name);
    }
}
// 执行showName方法
book.showName();// js面向对象
var book = new Object();
book.name = 'js面向对象';
book.author = 'liyajie';
book.price = 100.00;
book.showName = function(){
      console.log(this.name);
}
// 执行showName方法
book.showName(); // js面向对象
// 使用工厂方法创建
function bookFac(name,author){
    var book = new Object();
    book.name = name;
    book.author = author;
    book.showName = function(){
        console.log(this.name);
    }
    return book;
}
var b = bookFac('java开发指南','王强');
b.showName();
function Person(name,age){
    this.name = name;
    this.age = age;
    this.showInfo = function(){
      console.log(this.name + '---'+ this.age);
    }
}
var p = new Person('王强', 23);
p.showInfo();// 打印出   王强----23

使用自定义构造函数创建对象的内部实现细节:

  1. 默认内部会创建一个空对象 var o = new Object();
  2. 默认会把这个对象赋值给this this = o;
  3. 默认会把当前这个对象的原型赋值给这个空对象 o.prototype = Person.prototype;
  4. 我们手动通过this设置新对象的属性和方法.
  5. 构造函数的最后, 默认会把新创建的对象返回. 如果手动返回的是值类型, 则忽略, 如果是引用类型的则使用.
上一篇下一篇

猜你喜欢

热点阅读