努力到无能为力,拼搏到感动自己;
今天在逆战班学习了对象的创建,明天继续加油!!!
javascript 创建对象简单说,无非就是使用对象或各种自定义对象,但写法有很多种,也能混合使用。
- 对象字面量的方式
ar Cat = {}; //JSON
Cat.name = "喵喵", //添加属性并赋值
Cat.age = 5,
Cat.sayHello = function(){
alert("Hello"+Cat.name+",今年"+Cat["age"]+"岁了");
}
Cat.sayHello();//调用对象的方法(函数)
2.用function(函数)来模拟class(无参构造函数)
function Person(){}
var person = new Person();//定义一个function,如果有new关键字"实例化",function可以看做是一个类
person.name = "小明";
person.age = "19";
person.sayName = function( ){
alert(person.name+"今年"+person.hobby);
}
person.sayName();
3.用有参数构造函数来实现,这样定义更方便,扩展性更强(推荐使用)
function Pet(name,age,hobby){
this.name = name; //this作用域:当前对象
this.age = age;
this.eat = function(){
alert("我叫"+this.name+",我今年"+this.age+"岁了);
}
}
var p1 = new Pet("小明",19); //实例化创建对象
p1.eat();
4.使用工厂方式来创建对象(Object关键字)
var p2 = new Object();
p2.name = "小明";
p2.age = 21;
p2.work = function(){
alert("我是"+p2.name+"我今年"+p2.age+"岁了。");
}
p2.work();
5.使用原型对象的方式 prototype关键字
function Dog(){}
Dog.prototype.name="旺财";
Dog.prototype.eat=function(){
alert(this.name+"非常听话。");
}
var wangcai = new Dog();
wangcai.eat();
6.混合模式(原型和构造函数)
function Person(name,age){
this.name = name;
this.age= age;
}
Person.prototype.sayName = function(){
alert("我是"+this.name+",我现在"+this.age+"岁。");
}
var p3 = new Car("小明",21);
p3.sayName();