接触js已经有几个月了,但是对js的面向对象的一些概念根本就是模糊的,js是一种面向对象的语言 但又不像java一样有class,js不是严格的面向对象语言 ,js在java web开发的地位和java不相上下 ,其中web的数据的反馈现在主流的使用json,json的语法和js的类和属性的创建相似
下面介绍一些js的类和对象的创建的技术
一:类和对象的调用
var obj={
'id':2,
'name':'王珂',
'sex':'男'
};
alert(obj.name+" "+obj.id);
二:函数创建对象 this指当前类的属性与java相似(原型模式)
//简单对象的创建
function myObj(){
this.id=1;
this.name="王文";
}
var b =new myObj();
//alert(" 对象"+b.id+" "+b.name);
三:构造函数创建类和对象(构造函数模式)
//根据类的属性创建对象
function createPerson(id,name,sex){
this.id=id;
this.name=name;
this.sex=sex;
this.syName=function(){
// alert("函数的属性是:"+this.name);
}
}
//alert(obj.id+""+obj.name+""+obj.sex);
//创建对象
var person=new createPerson(obj.id,obj.name,obj.sex);
//alert("对象的结果是:"+person.id+""+person.name+""+person.sex);
//对象调用 类中的匿名函数
person.syName();
四:两次输出的结果都是一样
function Person(name,age,job){
this.name = name;
this.age=age;
this.job = job;
this.sayName = function(){
alert(this.name);
};
}
Person("ansel","30","male");
Person("tanya","30","female");
window.sayName();
window.sayName();
发现两次弹出的都是ansel,这是因为不用new的话,就不是一个person的实例,而仅仅在执行函数。而在全局作用域调用一个函数时this总是指向Global对象。而Global对象在浏览器中就是window对象。
1995

被折叠的 条评论
为什么被折叠?



