菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP 如何 W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

JS 参考手册

按类别划分的 JS 按字母划分的 JS

JavaScript

JS 数组 JS 布尔值 JS 类 JS 日期 JS 错误 JS 全局 JS JSON JS Map JS Math JS 数字 JS 对象 JS 运算符 JS 优先级 JS Promise JS 正则表达式 JS Set JS 语句 JS 字符串 JS TypedArray

Window

Window 对象 Window Console Window History Window Location Window Navigator Window Screen

HTML DOM

HTML 文档 HTML 元素 HTML 属性 HTML 集合 HTML NodeList HTML DOMTokenList HTML 样式
alignContent alignItems alignSelf animation animationDelay animationDirection animationDuration animationFillMode animationIterationCount animationName animationTimingFunction animationPlayState background backgroundAttachment backgroundClip backgroundColor backgroundImage backgroundOrigin backgroundPosition backgroundRepeat backgroundSize backfaceVisibility border borderBottom borderBottomColor borderBottomLeftRadius borderBottomRightRadius borderBottomStyle borderBottomWidth borderCollapse borderColor borderImage borderImageOutset borderImageRepeat borderImageSlice borderImageSource borderImageWidth borderLeft borderLeftColor borderLeftStyle borderLeftWidth borderRadius borderRight borderRightColor borderRightStyle borderRightWidth borderSpacing borderStyle borderTop borderTopColor borderTopLeftRadius borderTopRightRadius borderTopStyle borderTopWidth borderWidth bottom boxShadow boxSizing captionSide caretColor clear clip color columnCount columnFill columnGap columnRule columnRuleColor columnRuleStyle columnRuleWidth columns columnSpan columnWidth counterIncrement counterReset cssFloat cursor direction display emptyCells filter flex flexBasis flexDirection flexFlow flexGrow flexShrink flexWrap font fontFamily fontSize fontStyle fontVariant fontWeight fontSizeAdjust height isolation justifyContent left letterSpacing lineHeight listStyle listStyleImage listStylePosition listStyleType margin marginBottom marginLeft marginRight marginTop maxHeight maxWidth minHeight minWidth objectFit objectPosition opacity order orphans outline outlineColor outlineOffset outlinestyle outlineWidth overflow overflowX overflowY padding paddingBottom paddingLeft paddingRight paddingTop pageBreakAfter pageBreakBefore pageBreakInside perspective perspectiveOrigin position quotes resize right scrollBehavior tableLayout tabSize textAlign textAlignLast textDecoration textDecorationColor textDecorationLine textDecorationStyle textIndent textOverflow textShadow textTransform top transform transformOrigin transformStyle transition transitionProperty transitionDuration transitionTimingFunction transitionDelay unicodeBidi userSelect verticalAlign visibility width wordBreak wordSpacing wordWrap widows zIndex

HTML 事件

HTML 事件 HTML 事件对象 HTML 事件属性 HTML 事件方法

Web API

API Canvas API Console API Fetch API Fullscreen API 地理位置 API History API MediaQueryList API Storage API 验证 API Web

HTML 对象

<a> <abbr> <address> <area> <article> <aside> <audio> <b> <base> <bdo> <blockquote> <body> <br> <button> <canvas> <caption> <cite> <code> <col> <colgroup> <datalist> <dd> <del> <details> <dfn> <dialog> <div> <dl> <dt> <em> <embed> <fieldset> <figcaption> <figure> <footer> <form> <head> <header> <h1> - <h6> <hr> <html> <i> <iframe> <img> <ins> <input> button <input> checkbox <input> color <input> date <input> datetime <input> datetime-local <input> email <input> file <input> hidden <input> image <input> month <input> number <input> password <input> radio <input> range <input> reset <input> search <input> submit <input> text <input> time <input> url <input> week <kbd> <label> <legend> <li> <link> <map> <mark> <menu> <menuitem> <meta> <meter> <nav> <object> <ol> <optgroup> <option> <output> <p> <param> <pre> <progress> <q> <s> <samp> <script> <section> <select> <small> <source> <span> <strong> <style> <sub> <summary> <sup> <table> <tbody> <td> <tfoot> <th> <thead> <tr> <textarea> <time> <title> <track> <u> <ul> <var> <video>

其他参考

CSSStyleDeclaration JS 转换


JavaScript Object.defineProperty()

示例

添加属性

// 创建一个对象
const person = {
  firstName: "John",
  lastName: "Doe",
  language: "EN"
};

// 添加一个新属性
Object.defineProperty(person, "year", {value:"2008"})
自己动手试一试 »

更改属性

// 创建一个对象
const person = {
  firstName: "John",
  lastName: "Doe",
  language: "EN"
};

// 更改属性
Object.defineProperty(person, "language", {value:"NO"})
自己动手试一试 »

更多示例见下!


描述

Object.defineProperty() 方法添加或更改对象属性。

Object.defineProperty() 方法允许您更改属性元数据。

Object.defineProperty() 方法允许您添加 getter 和 setter。

请参阅下面的更多示例。


相关方法

Object.defineProperty() 添加或更改单个属性。

Object.defineProperties() 添加或更改多个属性。


Object.getOwnPropertyNames() 返回对象的属性名称。

Object.getOwnPropertyDescriptor() 返回属性的描述符。

Object.getOwnPropertyDescriptors() 返回所有属性的描述符。


语法

Object.defineProperty(object, property, descriptor)

参数

参数 描述
object 必需。
该对象。
object 必需。
属性名称。
descriptor 必需。
要添加或更改的属性描述符

value:
writable : true|false
enumerable : true|false
configurable : true|false
get : 函数
set : 函数

返回值

类型 描述
对象已进行更改的已传递对象。

更多示例

示例

// 创建一个对象
const person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
};

// 更改属性
Object.defineProperty(person, "language", {
  value: "EN",
  writable : true,
  enumerable : true,
  configurable : true
});

// 枚举属性
let txt = "";
for (let x in person) {
  txt += person[x] + "<br>";
}

// 显示属性
document.getElementById("demo").innerHTML = txt;
自己动手试一试 »

下一个示例是相同的代码,但它隐藏了枚举中的语言属性

示例

// 创建一个对象
const person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
};

// 更改属性
Object.defineProperty(person, "language", {
  value: "EN",
  writable : true,
  enumerable : false,
  configurable : true
});

// 枚举属性
let txt = "";
for (let x in person) {
  txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;
自己动手试一试 »

Setters 和 Getters

此示例创建一个 setter 和一个 getter 来确保语言的更新为大写

示例

// 创建一个对象
const person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO"
};

// 更改属性
Object.defineProperty(person, "language", {
  get : function() { return language },
  set : function(value) { language = value.toUpperCase()}
});

// 更改语言
person.language = "en";

// 显示语言
document.getElementById("demo").innerHTML = person.language;
自己动手试一试 »

此示例使用 getter 连接名和姓

示例

// 创建一个对象
const person = {
  firstName: "John",
  lastName : "Doe"
};

// 定义 Getter
Object.defineProperty(person, "fullName", {
get: function () {return this.firstName + " " + this.lastName;}
});
自己动手试一试 »

JavaScript Getter 和 Setter 非常适合创建计数器

示例

// 定义 Setters 和 Getters
Object.defineProperty(obj, "reset", {
get : function () {this.counter = 0;}
});
Object.defineProperty(obj, "increment", {
get : function () {this.counter++;}
});
Object.defineProperty(obj, "decrement", {
get : function () {this.counter--;}
});
Object.defineProperty(obj, "add", {
set : function (value) {this.counter += value;}
});
Object.defineProperty(obj, "subtract", {
set : function (value) {this.counter -= value;}
});
自己动手试一试 »

浏览器支持

Object.defineProperty() 是 ECMAScript5 (ES5) 功能。

自 2013 年 7 月以来,所有现代浏览器都完全支持 ES5 (JavaScript 2009)

Chrome
23
IE/Edge
11
Firefox
21
Safari
6
Opera
15
2012 年 9 月 2012 年 9 月 2013 年 4 月 2012 年 7 月 2013 年 7 月

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持