JavaScript笔记:对象创建

这里先放一个常规的函数对象代码:

var mrDeng = {
    name : "nrDeng",
    age : 40,
    sex : "male",
    health : 100,
    smoke : function () {
        console.log('i am smoking ! cool!!!');
        mrDeng.health --;
    },
    drink : function () {
        console.log('i am drink');
        mrDeng.health ++;
    }
}

对象的创建方法

  • 第一种:var obj = { } 被称为plainObject ,对象字面量/对象直接量。

  • 第二种:构造函数创建法:
    1)系统自带有这些构造函数 :Object()、Array()、Number()

    2)自定义,想使用构造函数,一定得加new,这样就使函数具备构造函数功能。

    var obj = new Object(); // 相当于 var obj = { };
    obj.name = ‘abc’; //可以以这种格式加属性,这里和python一样
    obj.sex = ‘male’;
    obj.say = function(){};

    3)构造函数都用大驼峰命名法,就是从第一个单词的首字母就大写,用来区别与普通函数。

    4)构造函数内部原理,三段式:

     1.会在函数体最前面隐式的加上this = {}
     2.执行this.xxx = xxx;
     3.隐式的返回this
    

第一步会在函数顶端生成var this = {}空对象

       var  this ={
           name : " ",
           age : " "
       };
       return this

然后在底部创建一个return this;
这里要注意,谁调用了这个构造函数,this就指向谁。
下面是一个模拟构造函数运行原理的一段代码:

function Person(name,height){
    var that = {};
    that.name = name;
    that.height = height;
    return that;
}
var person = Person("xiaowang",180);
var person1 = Person("xiaozhang",175);
console.log(person)
console.log(person1)
--------------------------------------
{name: "xiaowang", height: 180}
{name: "xiaozhang", height: 175}
  • 第三种:Object.create()
    语法规则为:
var obj = Object.create(原型)

举一个例子:

var obj = {name : "sunny", age : 123};
var obj1 = Object.create(obj);

此时的obj1,就继承了对象obj的属性。

猜你喜欢

转载自blog.csdn.net/qq_28766729/article/details/83479144