1.删除属性 delete运算符可以删除对象的属性 delete person.age //即person不再有属性age delete person['age'] //或者这样 delete只是断开属性和宿主对象的联系,而不会去操作属性中的属性  看到delete a.p之后b.x仍然为1 var a = {p:{x:1}}; var b = a.p; console.log(a.p.x); delete a.p; console.log(a.p.x); //TypeError a.p is…
js面向对象 ECMA-262第5版在定义只有内部才用的特性(attribute)时,描述了属性(property)的各种特征.ECMA-262定义这些特性是为了实现javascript引擎用的,因此在javascript中不能直接访问它们.为了表示特性时内部值,该规范把它们放在了两对方括号中,例如[[Enumerable]]. 1数据属性 数据属性包含一个数据值的位置,在这个位置可以读取和写入值.数据属性有4个描述其行为的特性 1.[[Configurable]]:表示能否通过delete删除…
最近想写一些js工具,有些方面需要用到面向对象的方法,比如继承父类属性和方法.通过私有化隐藏某些对象的属性等,因为没有系统的学习js,所以不知道怎么做,觉得很伤脑筋. 今天受到技术群里朋友的提示,并查阅了一些资料,终于把这个问题解决了,真是大快人心啊,哈哈,哈哈,哈哈哈哈!!! 下面列举了两种继承方式,各有优缺点,可根据业务需要选择,现把自己调试的代码整理如下,以备参考: <script type="text/javascript"> function TestClassA…
//在js的对象中可以直接将一个方法赋值给一个属性,这种方法非常好用. //在js中虽然没有像其他语言中的class关键字,但是我们也可以用函数,字面量的方式来模拟. var myHome={ name:"张海", age :, messages:function(){ console.log(this.name+"已经"+this.age+"岁了"); } }; //属性的方法添加,修改,调用 myHome.name="小和尚&quo…
说到枚举,可能很多人都会想到枚举类型,但在javascript对象中有一个属性为可枚举性,他是什么呢? 概念 可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for...in循环之中.具体来说,如果一个属性的enumerable为false,下面三个操作不会取到该属性.* for..in循环* Object.keys方法* JSON.stringify方法 enumerable "隐身术" var o = {a:1, b:2}; o.c = 3; Object.de…
前言 我们经常需要操作对象的属性.这里记录ES5中操作对象属性的API和它们之间的差异. 枚举属性 for/in遍历对象中的所有可枚举属性(包括自有属性和继承属性) var obj = {name:"小花",age:18}; var obj2 = Object.create(obj); obj2.like = "骨头"; for(item in obj2){ // 将obj中的所有可枚举属性名以字符串形式分别赋值给itemtypeof item; => str…
js中每个对象的属性(js里万物皆属性,对象的属性也是对象)都有一个属性叫enumerable(可枚举性),这个属性true/false决定了该对象的属性是否可枚举(就是让一些方法访问到这个属性). js中哪些属性可枚举,哪些不可枚举? 1.可枚举属性:可以用obj.propertyIsEnumerable(prop)方法来判断,返回Boolean,但是通过原型链继承的属性除外. 2.js基本数据类型自带的原型属性不可枚举. 3.通过Object.defineProperty()方法指定enum…
在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for…in查找遍历到. 一.怎么判断属性是否可枚举 js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等,如果你写出这样的代码遍历其中的属性: var num = new Number(); for(var pro in num) { console.log("num." + pro + " = "…
在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for…in查找遍历到. 一.怎么判断属性是否可枚举 js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等,如果你写出这样的代码遍历其中的属性: 1 2 3 4 var num = new Number(); for(var pro in num) {     console.log("num." + pro + &q…
前言 权威指南中摘要的,工作中用不到的,重要的js基础. 三类对象两类属性 内置对象(native object) 是由ECMScript规范定义的对象或者类.例如:函数,数组,日期,正则... 宿主对象(host object) 是由js编译器所嵌入的宿主环境(web浏览器)所定义的.比如客户端js中表示网页结构的HTMLElement对象就是宿主环境创建的对象.宿主环境定义的对象可以直接使用的话,我们也可以把它们当做内置对象. 自定义对象(user-defined object) 由运行中的…