javascript学习15:创建对象

Javascript面向对象是一个很奇怪的,跟其他语言的棉面向对象有区别。

创建对象

1.使用常见的new Object()来创建

var box = new Object(); //创建对象

box.name='Lee'; //创建属性

box.age = 100;

box.run = function(){ //创建方法

return box.name+" is "+this.age

};//this表示当前作用域下对象

//this表示new Object()实例化出来的那个对象

alert(box.run()); //打印出对象的方法

2.工厂模式

function createObject(name,age){

var obj = new Object();

obj.name= name;

obj.age = age;

obj.run = function(){
return this.name+" is "+this.age;

};

return obj; //返回对象引用

}

var box1 = createObject('Cai',27); //创建第一个对象

alert(box1.run()); //打印第一个对象实例的方法

3.构造函数

function Box(name,age){

this.name=name;

this.age = age;

this.run = function(){

return this.name+" is "+this.age;

};

};

var box1 = new Box('Cai',27); //实例化

var box2 = new Box('Jack',22);

alert(box1.run());

注意事项:

1.构造函数没有new Object,但它后台会自动var obj = new Object

2.this就相当于obj

3.构造函数不需要返回对象,它是后台自动返回的。

1.构造函数必须也是函数,但函数名第一个字母大写

2.必须new 构造函数名(), new Box(),而这个Box第一个字母也是大写的。

3.必须使用new运算符。

var o = new Object();

Box.call(o,'Cai',27); //对象冒充

alert(box.run = box2.ru) //false是因为他们的引用地址不一样

4.字面量方法

var obj = {
name:"qdkfweb.cn",
run:function(){
return obj.name;
}
}
alert(obj.run());

关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流