js对象详解

js对象详解

对象分类:

1.是对象:用关键词new定义的布尔,数字和字符串;日期;算术;正则表达式;数组;函数。(值变)
2.不是对象:布尔boolean;字符串string;数字number;null;undefined这五种原始数据类型的值(原始值-没有属性或方法的值,值不变)

对象是变量,但能够包含多值

js中的对象是属性(命名值)的集合;
var student={
name·:“shinee”,
occupation:“singer”,
age:“25”,
sex:“male”,
}

对象属性

在上例中
对象属性name occupation age sex
对象属性的值shinee singer 25 male
属性一般是可添加,修改,或删除,但是某些属性只可读

属性只读的设置
对象的数据属性,所谓的数据属性就是包含一个数据值的位置。在这个位置可以读取和写入值。数据属性有 4 个描述其行为的特性。
[Configurable]:表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。特性默认值为 true。
[Enumerable]:表示能否通过 for-in 循环返回属性。特性默认值为 true。
[Writable]:表示能否修改属性的值。特性默认值为 true。
[Value]:包含这个属性的数据值。读取属性值的时候,从这个位置读;写入属性值的时候,把新值保存在这个位置。这个特性的默认值为 undefined。
设置只读例子:
var student={name:“shinee”};
Object.defineProperty(student,“name”{
Writable:false,//此处将Writable设为false,意为属性只读
value:“shinee”
});
alert ( student.name);//“shinee”
student.name=“key”;//修改属性的值为“key”
alert student.name;//“shinee”(属性的值不变)

访问对象属性
1.objectName.property // student.name;
2.objectName[“property”] //student[“name”];
3.objectName[expression] //student[x] (x=“name”);
属性中的遍历循环for·····in循环
for (variable (要执行的代码) in object) {

}
添加新属性
对象已存在的情况下添加新属性(student.company=:“sm”;)
删除属性
delete objectName.property;
delete.student.name

删除之后属性连同属性的值都会删掉;delete只设计用于删除对象属性,对变量或者函数没有影响;delete 操作符不应被用于预定义的 JavaScript 对象属性,这样做会使应用程序崩溃。
预定义对象
预定义对象是内置于JavaScript中,用于一般用途的对象类型。
原型属性
JavaScript 对象继承了它们的原型的属性。
delete 关键词不会删除被继承的属性,但是如果删除了某个原型属性,则将影响到所有从原型继承的对象。
原型
每一个JavaScript对象(null除外)都有原型,每一个对象都从原型继承属性。
所有通过对象字面量创建的对象都具有同一个原型对象,可以通过Object.prototype获得对原型对象的引用。
通过关键字new和构造函数调用创建的对象的原型就是构造函数的prototype属性的值。以通过Object.prototype获得对原型对象的引用。
对实例对象属性的访问,首先读取实例对象的属性,如果没有在实例上发现该属性,则读取原型的属性,当为实例添加一个属性时,就会屏蔽原型对象中保存的同名属性,阻止访问原型中的那个属性,但不会修改原型的那个属性。

对象方法

方法是能够在对象上执行的动作(方法是存储为对象属性的函数。)
var student={
name·:“shinee”,
occupation:“singer”,
age:“25”,
sex:“male”,
company:function(){
return 1;
}
}

this 关键词
在 JavaScript 中,被称为 this 的事物,指的是拥有该 JavaScript 代码的对象。
在方法中,this 指的是此方法的所有者对象。
单独的情况下,this 指的是全局对象。
在函数中,this 指的是全局对象。
在函数中,严格模式下,this 是 undefined。
在事件中,this 指的是接收事件的元素。
对象方法绑定
this 是 person 对象(person 对象是该函数的“拥有者”)this指代的是student对象:
var student={
name·:“shinee”,
occupation:“singer”,
age:“25”,
sex:“male”,
company:function(){
return this;
}
}

显式函数绑定
call() 和 apply() 方法是预定义的 JavaScript 方法。
它们都可以用于将另一个对象作为参数调用对象方法。
实例
var student1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var student2 = {
firstName:“li”,
lastName: “ming”,
}
student1.fullName.call(student2); // 会返回 “liming”

在此例中,是将对象student2作为参数来调用对象student1的方法,student1中的this指的是对象student2;
创建对象方法:
methodname=function(){
}

访问对象方法:

var student1 = {
firstName:“li”,
lastName: “ming”,
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
document.getElementById(“ff”).innerHTML = student1.fullName();//
(返回li ming)

var student1 = {
firstName:“li”,
lastName: “ming”,
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
document.getElementById(“ff”).innerHTML = student1.fullName;//
(返回function(){ return this.firstName + " " + this.lastName;
})

使用内建方法
比如
var a=“sdsfds”;
var d=a.ToUpperCase();

添加新的方法
向对象添加方法是在构造器函数内部完成的:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值