js创建对象的方式

xiaoxiao2021-02-28  99

//创建对象的方式: //第一种: json的方式创建对象 // var o = { key: val }; // var arry = [ 1,2, 4, {}]; // var kong = {}; // var kong2 = new Object(); var o = { name: 'qingtao', age : 18, sayHi: function() { //this === o // true console.log( 'name: ' + this.name +' ' + this.age); } }; o.sayHi(); //缺点: 不能把json对象当成一个模板, 通过new来构造一个新对象。 //-> 给json对象添加属性 o.color = 'red';// javascript:一个动态语言。 //->给json对象添加方法 o.show = function() { }; //第二种:创建对象的方式 var o2 = new Object();// 创建一个 object对象。 o2.age = 19; o2.show = function() {};//缺点: 不能把json对象当成一个模板, 通过new来构造一个新对象。 //第三种: 创建对象的方式 // Cat.prototype function Cat() { //cat: 猫 this = {}; //让this 指向一个空对象。 // var t = {}; // this = t; this.__proto__ = Cat.prototype; this.age = 18; this.show = function() { console.log(this.age); } this.name = '1123';//污染全局 // return { // name: 12 // }; // return this; // } } // new: 操作符,   a+b    -  *  var cat = new Cat(); //通过构造函数 构造一个对象出来。 Cat();//this === window // new Cat();//之后 ,执行Cat的构造函数,然后Cat构造函数如果有返回值, // 那么直接把返回值 赋值给cat实例。 // 如果构造函数没有返回值,那么 就会把 构造函数中 构造的那个this对象返回给 cat实例。 cat.show();// var cat1  = new Cat(); // cat === cat1;  false // new: 内部的原理, // 第0步: 在内存中开辟一块空间。 // 第一步:创建一个新空对象。 // 第二步: 把this 指向到这个空对象。 // 第三步: 把空对象的 内部原型 指向 构造函数的原型对象。 // 第四步: 当构造函数执行完成后,如果么有return的话,那么把当前 // 空对象返回。 // cat.name //如果构造函数有return: function Bird() { this.age = 19; this.show = function() {}; return this; // return { // demo: '123' // }; } var t = new Bird(); console.log(t.demo
转载请注明原文地址: https://www.6miu.com/read-44800.html

最新回复(0)