对象构造器
来源:互联网 发布:上班时间 知乎 编辑:程序博客网 时间:2024/06/06 04:51
1.javascript对象
js是基于对象编程,js环境中所有元素的都是对象,js对象包括内置对象、宿主对象、自定义对象。
(1)内置对象:String、Number、Boolean、Function、Array等;
(2)宿主对象:Window、Document、Location、History等;
(3)自定义对象:通过自定义构造函数过程创建对象。
2. 创建对象的方式
(1)JSON格式创建对象,{变量:值,变量:值,...}
varobj={
name:"张三",
age:10,
into:function(){alert(this.name+" "+this.age)};
};
(2)构造函数创建对象:var 对象 = new 函数名();
var obj = function clock(hour,minute,second){
this.hour = hour;
this.minute = minute;
this.second = second;
this.showTime = function(){
alert(this.hour+":"+this.minute+":"+this.second);
}
}
•对象中成员:对象中一切都是属性,表示为键值对方式。JS中可以任意(随时)扩展属性,实现动态绑定。
varclock = new Object();
clock.hour=12;
clock.minute=10;
clock.showHour=function(){alert(clock.hour);};
3.成员封装处理
命名空间:通过给当前对象定义命名空间,通过命名空间来进行对象二次封装
静态属性函数定义
任何一个函数都有一个prototype属性(原型)
所有prototype绑定的属性为静态属性,所有对象共有和共同操作,与成员属性相对的定义
成员属性
直接定义在构造函数中的属性
当前构造函数构造出来的每个对象独立拥有,并操作。
4.成员属性取值/赋值操作
直接通过对象调用方式对执行属性进行取值/赋值
借助中括号方式进行访问属性,并取值和赋值
提供get/set方法来进行取值/赋值操作(限制赋值内容)
get方法,提供属性获取函数
set方法,提供属性赋值函数
5.Object类
(1)Object构造方法调用创建对象:new方式调用和不用new的方式调用性质是一样的。如果不传任何参数,代表创建一个空的对象实例,参数传递的仍然是个对象,则返回的就是当前参数传递的对象;参数如果是一个原始类型的值,则返回该值对应的包装对象;参数如果传递的是null或者undefined,返回的是当前一个空对象实例。
var array = new Array();
console.log(new Object()); //Object
console.log(new Object(array)); //Array(0)
console.log(new Object(1)); //Number
console.log(new Object(true)); //Boolean
console.log(new Object(null)); //Object
console.log(newObject(undefined)); //Object
(2)Object是js内置构造函数,专门提供给我们构造新的实例,内置静态函数如下:
①create函数:用于创建一个新的实例,传递一个构造器原型
②hasOwnProperty函数:判断对象是否有某个特定的属性
o.hasOwnProperty("age")
③keys函数:获取当前所有可枚举的属性名
④defineProperty函数:给对象动态绑定单个属性
defineProperty单个属性绑定:Object.defineProperty(argu1,argu2,argu3);
第一个参数:目标对象(需要绑定属性的对象)
第二个参数:需要定义的属性或方法的名字(字符串格式)
第三个参数:目标属性所拥有的特性 : 4+2(JSON格式)
value:属性的值,给绑定属性赋值
writable:如果为false,属性的值就不能被重写,只能为只读
configurable:设置是否能重新配置,一旦为false,就不能再设置他的(value,writable,configurable、delete)
enumerable:是否能在for...in循环中遍历出来或在Object.keys中列举出来。
get/set:给当前属性取值和赋值时候分别触发的函数
⑤defineProperties函数:给对象动态绑定多个属性
defineProperties多个属性绑定:Object.defineProperties(argu1,argu2);
第一个参数:目标对象(需要绑定属性的对象)
第二个参数:JSON格式,同时绑定多个属性
⑥getOwnPropertyDescriptor函数:获取单个属性描述,参数1为对象,参数2为属性名
⑦getOwnPropertyDescriptors函数:获取多个属性的描述,参数1为对象,参数2为属性名数组
functionStudent(){
var name = "张三";
var age = 24;
var sex ="女";
this.getName = function(){
return name;
};
this.setName = function(val){
if(val.length>5||val==""||val==undefined){
throw new Error();
}
name = val;
}
this.getAge = function(){
return age;
};
this.setAge = function(val){
if(val<0||val>100){
throw new Error();
}
age = val;
};
this.getSex = function(){
return sex;
};
this.setSex = function(val){
if(!(val=="男"||val=="女")){
throw new Error();
}
sex = val;
};
}
var stu = {
_name:"",
_age:24,
_sex:"女",
set name(val){},
get name(){},
set age(val){},
get age(){},
set sex(val){},
get sex(){}
}
var stu = {};
Object.defineProperties(stu,{
_name:{
value:"张三",
writable:true,
configurable:true,
enumerable:true
}
name:{
get:function(){
return this._name;
}
set:function(val){
this._name = val;
}
}
});
- 构造器模式构造对象
- 面向对象--构造器
- 构造器和对象
- 构造器创建对象
- 对象构造器
- OC 便利构造器对象
- 反射获取构造器对象
- 对象构造器和原型
- 对象创建和构造器
- 使用对象构造器初始化对象
- 面向对象第四课,构造器,构造方法
- Java基础复习---对象构造(构造器)
- 关于Java的对象,构造器,构造方法...
- 34_面向对象_07_构造器(构造方法)
- Javascript两种对象构造器方式
- JavaScript中的对象与构造器
- 面向对象--初始化块 和构造器
- JavaScript中的对象与构造器
- SpringMVC之Json
- Windows mysql默认字符集修改
- 循环的经典练习
- Android使用Gradle配置构建变体
- mac下查看jre路径
- 对象构造器
- 所谓情商高,就是会说话
- python之 数据类型判定与类型转换
- 文章标题
- 字符串统计
- C# 集合(list)
- 去你妈的996
- Java测试题(含答案和部分解析)
- 总结-2017/12/10