一、Object是所有类的父类,Object类存在以下一些静态方法:
1)Object.preventExtensions(object),阻止向对象添加新属性。
var Extensible = {
};
Object.preventExtensions(Extensible);
Extensible.a = 20;
console.log(Extensible.a);//undefined
2)Object.getPrototypeOf(object),返回对象的原型。
console.log(Object.getPrototypeOf(Extensible));//获取原型
console.log(Object.getPrototypeOf(Extensible)===Extensible.constructor.prototype);//true
console.log(Object.prototype);//Object对象的原型为null
3) Object.getOwnPropertyDescriptor(object, propertyname)
var b = {i:10};
console.log(Object.getOwnPropertyDescriptor(b,"i"));//返回属性描述,包含:value、writable、get、set、configurable(change或者delete)、enumerable(是否枚举)
4) Object.defineProperty(object, propertyname, descriptor),将属性添加到对象或修改现有属性的特性
var object = {};
// Add a data property to the object.
Object.defineProperty(object, "newDataProperty", {
value: 101,
writable: true,
enumerable: true,
configurable: true
});
obj.newDataProperty = 102;
console.log(obj.newDataProperty);
5)Object.getOwnPropertyNames(object),列出对象的属性
var names = Object.getOwnPropertyNames(obj);
for (var i = 0; i < names.length; i++) {
var prop = names[i];
console.log(prop + ': ' + obj[prop]);
}
6)Object.defineProperties(object, descriptors),将一个或多个属性添加到对象,并/或修改现有属性的特性
var object = {};
Object.defineProperties(object, {
newDataProperty: {
value: 101,
writable: true,
enumerable: true,
configurable: true
},
newAccessorProperty: {
set: function (x) {
document.write("in property set accessor" + newLine);
this.newaccpropvalue = x;
},
get: function () {
document.write("in property get accessor" + newLine);
return this.newaccpropvalue;
},
enumerable: true,
configurable: true
}});
// Set the accessor property value.
object.newAccessorProperty = 10;
7) Object.isSealed(object),如果无法在对象中修改现有属性的特性,且无法向对象添加新属性,则返回 true.
var obj = { pasta: "spaghetti", length: 10 };
Object.seal(obj);//阻止修改现有属性的特性,并阻止添加新属性。
console.log(Object.isSealed(obj));//true
obj.newProp = 50;
console.log(obj.newProp);//undefined
delete obj.length;
console.log(obj.length);
obj.length = 20;
console.log(obj.length);//20,对象值可以被修改
8)Object.freeze(object),阻止修改现有属性的特性和值,并阻止添加新属性。
var obj = { pasta: "spaghetti", length: 10 };
Object.freeze(obj);
obj.newProp = 50;
console.log(obj.newProp);
delete obj.length;
console.log(obj.length);
obj.pasta = "linguini";
console.log(obj.pasta);//spaghetti
console.log(Object.isFrozen(obj));//true,如果无法在对象中修改现有属性的特性和值,且无法向对象添加新属性,则返回 true。
9)Object.create(prototype),建一个具有与 Shape 对象相同的内部原型的对象。
var Shape = { twoDimensional: true, color: undefined, hasLineSegments: undefined };
var Square = Object.create(Object.getPrototypeOf(Shape));
10)Object.keys(object),返回对象的可枚举属性和方法的名称。
function Pasta(grain, width, shape) {
this.grain = grain;
this.width = width;
this.shape = shape;
this.toString = function () {
return (this.grain + ", " + this.width + ", " + this.shape);
}
}
var spaghetti = new Pasta("wheat", 0.2, "circle");
var arr = Object.keys(spaghetti);
console.log(arr);
// Create a constructor function.
function Pasta(grain, width, shape) {
this.grain = grain;
this.width = width;
this.shape = shape;
}
var polenta = new Pasta("corn", 1, "mush");
var keys = Object.keys(polenta).filter(CheckKey);//过滤器
document.write(keys);
// Check whether the first character of a string is "g".
function CheckKey(value) {
var firstChar = value.substr(0, 1);
if (firstChar.toLowerCase() == "g")
return true;
else
return false;
}
二、Object类存在以下一些原型方法:
1)object.hasOwnProperty(proName),确定某个对象是否具有带指定名称的属性。
var s = new String("Sample");
console.log(s.hasOwnProperty("split"));//false
console.log(String.prototype.hasOwnProperty("split"));//true
2)prototype.isPrototypeOf(object),确定一个对象是否存在于另一个对象的原型链中。
function Rectangle() {
}
var rec = new Rectangle();
console.log(Rectangle.prototype.isPrototypeOf(rec));
3)object.propertyIsEnumerable(proName),确定指定的属性是否可枚举。通常,预定义的属性是不可枚举的,而用户定义的属性始终是可枚举的。
var arr = new Array("apple", "banana", "cactus");
console.log(arr.propertyIsEnumerable(1));//true
var object = {id:1,name:"name"};
console.log(object.propertyIsEnumerable("name"));//true
4)dateObj.toLocaleString(),返回使用当前区域设置转换为字符串的日期。
5)objectname.toString([radix]),返回对象的字符串表示形式。
6)object.valueOf(),返回指定对象的基元值。
var attr = [1,2,3,4];
var date = new Date();
var func = function(){
console.log("test...");
};
var object = {id:1,name:"name"};
console.log(attr.valueOf());//数组,[1,2,3,4]
console.log(date.valueOf());//日期,从 UTC 1970 年 1 月 1 日午夜开始的存储的时间值(以毫秒为单位)
console.log(func.valueOf());//函数本身
注意:Math 和 Error 对象都没有 valueOf 方法。
相关推荐
这是JavaScript内建的对象,用于处理日期和时间。通过创建一个新的Date实例,我们可以获取到当前系统时间,或者设置特定的日期和时间。例如: ```javascript var now = new Date(); ``` `now`对象包含了年、月、日...
### JSP内建对象简介与应用 在Java Server Pages(JSP)技术中,内建对象是预定义的对象,它们提供了处理服务器端脚本、页面请求、响应等基本功能的关键工具。理解并熟练掌握这些内建对象对于开发动态网页至关重要...
本文实例讲述了JavaScript创建一个object对象并操作对象属性的用法。分享给大家供大家参考。具体分析如下: 下面的JS代码创建了一个myMovie对象,并给对象title和director属性赋值,通过Object定义对象,其属性可以...
本文将深入探讨JavaScript中的面向对象程序设计的高级特性,包括对象的创建、访问、删除,以及`this`关键字的使用,还有内建对象、Object和Array对象。 1. **创建对象** - **构造法**:通过`new Object()`创建一个...
2. **基于对象**:JavaScript内建了许多内置对象,如Array、Date等,允许开发者直接操作和创建对象。 3. **简单性**:语法相对简单,易于学习,使得开发者可以快速上手。 4. **安全性**:JavaScript代码不能访问用户...
`json`模块用于处理JSON(JavaScript Object Notation)格式的数据,它提供了序列化Python对象为JSON字符串和反序列化JSON字符串为Python对象的功能。这对于数据交换和存储非常有用。 8. **re模块** `re`模块实现...
JavaScript 提供多个内建对象,比如 String、Date、Array 等等,使用对象前先定义,如下使用数组对象: var objectName =new Array();//使用new关键字定义对象 或者 var objectName =[]; 访问对象属性的语法: ...
8. 2D渲染引擎:Cappuccino内建的JavaScriptKit库提供了一个强大的2D渲染引擎,可以创建复杂的用户界面和动画效果,类似于Apple的Cocoa框架。 9. 自动内存管理:Objective-J支持垃圾回收机制,自动管理内存,减少...
24. **常用内建模块**:如collections模块提供高级数据结构,base64和struct用于数据编码解码,hashlib用于哈希计算。 25. **第三方模块**:如requests库进行HTTP请求,BeautifulSoup解析HTML,Numpy和Pandas处理...
- **内建对象(Native Objects)**,如Array、Math、Date等,是JavaScript语言内置的对象,可以直接使用。 - **宿主对象(Host Objects)**,如`window`对象,由浏览器提供,提供了与浏览器交互的能力,如`window....
基础对象 JavaScript 中继承的实现 怎么建? git clone 这个仓库 切换到新目录 npm install npm run build 用法 var Person = BaseObject . extend ( { init : function ( name , age ) { this . name = name ;...
- **内建对象**:如`Math`、`Date`和`Array`等,由JavaScript语言本身提供的对象。 - **宿主对象**:如`Form`、`Element`和`Image`等,由浏览器提供的对象。 - **用户定义对象**:开发者可以自定义对象,例如定义...
5. **内建对象的扩展** - 如Date对象的增强,以及Math对象提供更多数学函数。 学习JavaScript1.5,尤其是核心概念,对于理解现代JavaScript版本的演进和新特性至关重要。尽管JavaScript1.5的功能相比现代版本较为...
在JavaScript编程中,内建对象是一类特殊的对象,它们是由ECMAScript规范定义的,不依赖于浏览器或其他宿主环境。这些对象为JavaScript开发者提供了大量预先定义好的功能,使得开发者在编写代码时能够更加方便快捷。...
#### 常用内建模块 - collections、base64、struct、hashlib、itertools等。 - XML和HTML的解析。 #### 第三方模块 - PIL(Python Imaging Library)用于图像处理。 - 网络编程:TCP/IP和UDP协议的使用,SMTP和POP3...
JavaScript中的内建对象(build-in objects)和函数的`arguments`对象也携带DontDelete内部属性,这意味着它们也不能被删除。例如,`arguments`对象和函数的`length`属性都有DontDelete内部属性,因此它们都不能被`...
在JavaScript标准库中,有一个内建的全局函数`JSON.stringify()`,用于将JavaScript值转换为JSON字符串。这个函数接受三个参数:要转换的对象,一个可选的替换函数,以及一个可选的空格数量用于美化输出。 描述...
最后,JavaScript允许我们对内建的原型对象添加自定义方法,这给了开发者扩展语言本身的灵活性。例如,可以向Object.prototype添加一个自定义的方法,这样所有对象字面量创建的对象默认都会继承这个方法。 通过原型...