Javascript中的对象是无处不在的,function,boolean,正则等都是对象。对象主要用于收集和管理数据。
1)它内部数据以“属性名-属性值”的形式存在,如下,
var empty_object = {};
var stooge = {
"first-name": "Jerome",
"last-name": "Howard"
};
2)属性名,可以是任何字符串,如空字串也是可以的,双引号不是必须的;属性值可以是除undefined的任何
值。
如果值是对象,那么嵌套的对象和父对象就有了父子关系,轻易实现“树”关系。
var flight = {
airline: "Oceanic",
number: 815,
departure: {
IATA: "SYD",
time: "2004-09-22 14:55",
city: "Sydney"
},
arrival: {
IATA: "LAX",
time: "2004-09-23 10:42",
city: "Los Angeles"
},
tell: (r){
alert(t);
}
};
3)prototype属性使对象可以很容易的继承属性,减少初始化时间和节省内存。
if (typeof Object.beget !== 'function') {
Object.beget = function (o) {
var F = function () {};
F.prototype = o;
return new F();
};
}
var another_stooge = Object.beget(stooge);
another_stooge['first-name'] = 'Harry';
another_stooge['middle-name'] = 'Moses';
another_stooge.nickname = 'Moe';
stooge.profession = 'actor';
another_stooge.profession // 'actor'
4)访问属性的形式:
a)使用点符号:stooge. first-name
b)使用中括号:stooge.[first-name]
5) undefined:访问的时候当属性不存在的时候,
Stooge.num //undefined
如果我们要访问属性没有定义的时候给它赋个初始值:
var y=stooge.num||”yu”;
6)更新对象:
用赋值语句: stooge.num=”yu”;
7)对象通过引用传递,不可能被复制。
区别:
var a = {}, b = {}, c = {}; // 不同的空对象
a = b = c = {};//引用同一个空对象
8)反射
typeof stooge. first-name //string
typeof stooge. fight //object
typeof flight.tell // function
9)枚举,它有两种方式使用。:
a)var name;
for (name in another_stooge) {
if (typeof another_stooge[name] !== 'function') {
document.writeln(name + ': ' + another_stooge[name]);
}
}
b)var i;
var properties = [
'first-name',
'middle-name',
'last-name',
'profession'
];
for (i = 0; i < properties.length; i += 1) {
document.writeln(properties[i] + ': ' +
another_stooge[properties[i]]);
}
}
9)delete:原型属性不能删除,在对象内部用var 和function 直接声明的属性和方法不能删除,并且delete
会返回值,删除了不能删除的属性会返回false,否则返回true,需要的注意的是删除没有的属性时候也会返回
true.
10)定义包:
var MYAPP = {};
MYAPP.stooge = {
"first-name": "Joe",
"last-name": "Howard"
};
MYAPP.flight = {
airline: "Oceanic",
number: 815,
departure: {
IATA: "SYD",
time: "2004-09-22 14:55",
city: "Sydney"
},
arrival: {
IATA: "LAX",
time: "2004-09-23 10:42",
city: "Los Angeles"
}
};
分享到:
相关推荐
1. 对象Object:Object对象是JavaScript的基本对象,在任何其它JavaScript对象中都包含有Object对象,在所有其它对象中它的方法和属性都是可用的。Object对象的一个重要属性是prototype,prototype属性是用来返回...
每个JavaScript对象都有一个`__proto__`属性,指向创建该对象的构造函数的原型。原型对象也是一个对象,可以通过`prototype`属性来访问。我们可以在原型上定义方法,这样所有实例都可以访问这些方法: ```...
以上就是本篇文章所介绍的JavaScript面向对象特性的核心知识点。通过实例代码的展示,作者带领读者深入了解了这些特性在实际编程中的应用。需要注意的是,由于篇幅限制,这里只能概述文章中的一些要点,具体代码实例...
传统方式对JavaScript的应用基本上是基于过程模型的,若在JavaScript中利用面向对象的思想进行代码编写,将会使得代码具有良好的结构和逻辑性,更便于管理和维护。本文让读者看到JavaScript如何实现面向对象编程并...
通过理解JavaScript对象的特性和实践应用,开发者能够更加灵活高效地操作数据和实现各种功能。 首先,JavaScript对象可以包含属性和方法,其中属性是键值对,表示对象的特征,方法是属性值为函数的对象属性,表示...
除此之外,JavaScript还支持其他面向对象特性,如封装(通过作用域和闭包实现)、多态(通过函数重写和鸭子类型实现)等。在实际开发中,理解并灵活运用这些特性是编写高效、可维护的JavaScript代码的关键。为了更好...
首先,了解JavaScript对象的基本特性是至关重要的。在ECMAScript规范中,对象的属性访问速度并不依赖于属性的位置或顺序,因为它们内部是通过哈希表实现的。这意味着在遍历对象时,属性的访问顺序可能与添加的顺序...
如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript语言特有的优势;如何应用设计模式解决常见问题等。 《JavaScript面向对象编程指南》着重介绍...
如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript语言特有的优势;如何应用设计模式解决常见问题等。, 《JavaScript面向对象编程指南》着重介绍...
在JavaScript中实现面向对象特性时,需要注意以下几点: 1. 使用构造函数和原型来创建和扩展类。 2. 通过闭包实现封装,保护内部状态。 3. 利用原型链实现继承,共享方法和属性。 4. 虽然JavaScript没有原生接口,但...
JavaScript中的面向对象特性主要体现在以下几个方面: 1. **基于原型的对象模型**: JavaScript采用的是基于原型的继承机制,而不是类的继承。这意味着每个对象都有一个`__proto__`属性,指向它的构造函数的原型...
JavaScript中的对象是编程的核心组成部分,它们是由特性(attribute)组成的,特性可以包含原始值(如字符串、数字、布尔值)或引用值(如其他对象或函数)。如果一个特性存储的是函数,那么它就被称为对象的方法;...
尽管JavaScript不是传统意义上的面向对象语言,但它提供了一些独特的特性,使其能够支持面向对象编程。 - **原型链**:JavaScript使用原型链来实现继承。每个对象都有一个内部属性[[Prototype]],指向其原型对象。...
JavaScript作为一门浏览器语言的核心思想;...如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript语言特有的优势;如何应用设计模式解决常见问题等。
JavaScript是一种广泛应用于Web开发的动态编程语言,尤其以其强大的面向对象特性而闻名。面向对象编程(Object-Oriented Programming,OOP)是软件开发中的一种重要模式,它通过类和对象来模拟现实世界中的概念,...
每个JavaScript对象都有一个`__proto__`属性,指向它的构造函数的原型。当试图访问对象的一个属性时,如果该对象上没有这个属性,JavaScript会查找其`__proto__`,再找不到就继续查找`__proto__`的`__proto__`,直到...
本文将深入探讨JavaScript对象和属性的特性,包括`[[Prototype]]`、`[[Class]]`、`get`和`set`访问器、以及如何通过`Object.getOwnPropertyDescriptor()`、`Object.create()`和`Object.prototype.toString.call()`等...