js创建对象的方式

来源:互联网 发布:c#sql select 的返回值 编辑:程序博客网 时间:2024/05/19 20:38
//创建对象的方式:
//第一种: 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 // trueconsole.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.prototypefunction 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


原创粉丝点击