1、数据属性
- [[Configurable]]:能否通过delete删除属性从而重新定义属性。默认为true.
- [[Enumerable]]能否通过for-in循环删除属性。默认为true.
- [[Writable]]能否修改属性。默认为true.
- [[Value]]:包含属性的数据值。默认为undefined。
要修改属性的默认特性,必须要使用ECMAScrpit的Object.defineProperty()方法,这个方法接受3个参数,属性所在对象,属性名,描述符对象。
Object.defineProperty()对一个对象的一个方法只能调用一次,否则报cannot redfine property :xxx;
var person = {}
Object.defineProperty(person, "name", {
writable : false,
configurable : false,
value:"zhangsan"
});
person.name = "lisi";
Object.defineProperty(person, "name", {
writable : true
});
document.write("pserson.name: " + person.name);
2、访问器属性
- [[Configurable]]:能否通过delete删除属性从而重新定义属性。默认为true.
- [[Enumerable]]能否通过for-in循环删除属性。默认为true.
- [[Get]]在读取属性时调用的函数。默认为undefined.
- [[Set]]:在写入属性时调用的函数。默认为undefined。
访问器属性不能直接定义,必须使用Object.defineProperty()来定义。
var book = {_year:2003,edition:5};
Object.defineProperty(book,"year",{
get:function(){
return this._year;
},
set:function(newValue){
this._year = newValue;
this.edition +=newValue-2003;
}
});
book.year = 2014;
document.write("book.edition: " + book.edition);
3、读取属性的特性使用Object.getOwnPropertyDescriptor方法。eg.
var book = {
_year : 2003,
edition : 5
};
Object.defineProperties(book, {
_year : {
writable : false,
configurable : false
},
year : {
get : function() {
return this._year;
},
set : function(newValue) {
this._year = newValue;
this.edition += newValue - 2003;
}
}
});
book.year = 2014;
var descriptor = Object.getOwnPropertyDescriptor(book, "_year");
console.log("descriptor: ",descriptor);
document.write("book.edition: " + book.edition);
分享到:
相关推荐
总的来说,这个名为“JS_浏览器对象”的压缩包应该涵盖了以上所有概念,并可能通过示例代码和解释帮助学习者更好地理解和应用JavaScript的浏览器对象。深入学习这部分内容将大大提高开发者构建交互式Web应用程序的...
标题中的"threejs_opengl_javascript_js_ThreeJS_3d_"揭示了我们正在讨论的是一个与Three.js相关的项目,Three.js是一个基于WebGL的JavaScript库,用于在浏览器中创建和展示3D图形。WebGL是一种JavaScript API,它...
在这个场景中,我们关注的是一个名为"js_menu.rar_MENU._javascript_js_menu-collapsed.js_menu_front."的压缩包,它涉及到一个JavaScript实现的多级导航菜单。这个菜单可能是一个网页应用的核心组成部分,因为它...
3. **对象和原型链**:深入理解原型和原型链,包括对象的创建方式、原型对象、__proto__属性、以及如何通过构造函数和Object.create()创建对象,这对于理解和利用JavaScript的面向对象特性十分关键。 4. **函数式...
JavaScript,简称JS,是一种广泛应用于Web开发的轻量级编程语言,它被设计用来操作HTML文档对象模型(DOM)并实现动态网页效果。在“js.zip”这个压缩包中,我们看到了与JavaScript图形渲染相关的资源,包括“index....
JavaScript是一种广泛应用于网页和网络应用开发的编程语言,尤其在创建交互...通过分析和理解游戏的源代码,开发者可以学习到JavaScript的事件处理、动画制作、状态管理等多方面的知识,进一步提升自己的前端开发技能。
在JavaScript中,对象的创建是一个复杂且...理解这个过程有助于我们更好地设计和实现面向对象的JavaScript代码。在后续的学习中,我们将进一步探讨执行上下文、函数对象的详细概念以及其他相关的JavaScript核心概念。
这个名为 "JS_CPP.rar" 的压缩包提供了一个实践案例,展示了如何在 JavaScript 和 VC (Visual C++) 之间实现互操作性。这些交互通常通过特定的接口或库来完成,以确保数据和控制流程能在两种语言之间无缝传递。 1. ...
Three.js是一个流行的JavaScript库,专门用于在Web浏览器中创建3D图形。它允许开发者利用WebGL技术,为网页带来丰富的三维视觉体验。 【描述】"基于three.js的html5自动检测小程序" 描述了该项目的核心功能,即一个...
"JavaScript 语言参考" 是一本全面涵盖JavaScript核心概念和技术的资源,旨在帮助开发者深入理解和熟练运用这门语言。 JavaScript API手册是学习和查阅JavaScript函数、对象和方法的重要资料,它包含了从基本语法到...
JavaScript,简称JS,是一种广泛应用于Web开发的轻量级编程语言,特别适合于创建交互式网页和游戏。本文将深入探讨如何使用JavaScript开发一款小型游戏,这对于初学者来说是一个很好的学习项目。 首先,理解...
文档"js代码杂谈总结.doc"显然包含了作者对JavaScript语言的理解和经验总结。 在JavaScript中,核心概念包括变量(variables)、数据类型(data types)、控制流(control flow)、函数(functions)、对象...
在JavaScript中,内置的Date对象是处理日期和时间的基础。通过创建Date对象,我们可以获取当前时间,或者设置自定义的日期和时间。例如: ```javascript var today = new Date(); console.log(today); ``` 这段...
JavaScript是一种广泛应用于Web开发的动态编程语言,尤其以其强大的面向对象特性而闻名。面向对象编程(Object-Oriented ...通过阅读`prototype.js`这样的示例代码,可以帮助加深对JavaScript面向对象编程的理解。
"arcgis_js_api"可能包含API的核心库文件,这是构建ArcGIS JavaScript应用程序的基础。在实际项目中,需要将这个库文件引入到HTML页面中,以便使用API的功能。 总结,ArcGIS JavaScript API 3.7是一个强大且全面的...
在使用arcgis_js_v46_sdk.zip和arcgis_js_v46_api.zip这两个压缩包时,开发者需要先解压文件,然后在项目中引用API的JavaScript文件。通常,API的库文件会被加载到HTML页面的`<script>`标签中,以便在页面上运行GIS...
标题中的"PyPI 官网下载 | js.javascript_canvas_to_blob-2.0.5.tar.gz"表明这是一个从Python Package Index(PyPI)官方源获取的软件包,名为`js.javascript_canvas_to_blob`,版本号为2.0.5,并且是以tar.gz格式...
需要注意的问题包括性能优化(因为JavaScript解释和执行可能较慢)、安全考虑(执行不受信任的JavaScript代码可能存在风险)、错误处理(需要...以及API设计(如何优雅地让C#代码调用和理解JavaScript的方法和对象)...
ArcGIS JavaScript API是Esri公司提供的用于构建地理信息系统(GIS)应用的JavaScript库,而SDK则提供了详细的开发指南和技术文档,帮助开发者更好地理解和使用API。在"arcgis_js_v4.10_api&sdk"这个压缩包中,包含...
"himppf"可能是作者或某个特定的代码风格指南,"jspremise"可能是指JavaScript的基础概念,"精通javascript"则强调了对这门语言的深入理解和熟练掌握,而"Js设计模式"则是我们讨论的重点。 JavaScript设计模式主要...