您的位置:首页 > Web前端 > JavaScript

js创建对象的几种方式

2017-05-24 10:56 513 查看
简写

作为一个java程序员,习惯了java创建对象严格的语法方式,看到js灵活创建对象的方式,难免有些困惑,现在就来总结下js创建对象的几种方式

1、第一种json的方式 (推荐),比较通俗易懂

<script>
var Cat={}; //JSON
Cat.name="jacky、";//添加属性并赋值
Cat.age=22;
Cat.sayHello=function(){
alert("hello"+Cat.name+",今年"+Cat["age"]+"岁了");//可以使用"."的方式访问属性
}
Cat.sayHello();//调用对象的方法(函数)
或
var clock={
hour:12,
minute:12,
second:12,
showTime:function()
{
alert(this.hour+":"+this.minute+":"+this.second);
}
}
clock.showTime();//调用
</script>


2、构造函数

//无参构造函数
<script>
function Person(){

}
var personOne=new Person();//定义一个function,如果有new关
键字去"实例化",那么该function可以看做是一个类
personOne.name="梦想之舟";
personOne.hobby="正在敲代码";
personOne.work=function(){
alert(personOne.name+"is"+personOne.hobby);
}
personOne.work();
</script>
<!---用有参数构造函数-->
<script>
function Pet(name,age,hobby){
this.name=name;//this作用域:当前对象
this.age=age;
this.hobby=hobby;
this.eat=function(){
alert("我叫"+this.name+",我今年"+this.age+"岁了,我喜欢"+this.hobby);
}
}

var hehe=new Pet("王鹏程",22,"打篮球");//实例化创建对象
hehe.eat();
</script>


3、使用工厂方式创建对象

<script>
var dog = new Object();
dog.name="旺财";
dog.age=3;
dog.work=function(){
alert("我是"+dog.name+"汪汪汪......"+"我今年"+dog.age+"岁了");
}
dog.work();
</script>


4、使用原型的方式

<script>
function Dog(){

}
Dog.prototype.name="旺财";
Dog.prototype.eat=function(){
alert(this.name+"是个吃货");
}
var wangcai = new Dog();
wangcai.eat();
</script>


5、混合方式(构造+原型)

<!--混合模式(原型和构造函数)-->
<script>
function Car(name,price){
this.name=name;
this.price=price;
}
Car.prototype.sell=function(){
alert("我是"+this.name+",我现在卖"+this.price+"万元");
}
var camry = new Car("宝马",22);
camry.sell();
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: