用Object.definedproperties 一次性添加或修改多个属性的特性和值。

 <script>
var obj ={}
Object.defineProperties(obj,{
x:{value:1,writalbe:true,configurable:true,enumerable:true},
y:{value:2,configurable:true}
})
console.log(obj.x) //=>1
console.log(obj.y) //=>2
console.log(Object.getOwnPropertyDescriptor(obj,"x"))//得到属性的描述 value:1 writable:true configurable:true, enumerable:true
console.log(Object.getOwnPropertyDescriptor(obj,"y")) // value:2 writable:false configurable:true, enumerable:false
obj.z=3 //这个z是通过对象字面量的方式创建的
console.log(Object.getOwnPropertyDescriptor(obj,"z"))//所以所有的属性特性都为true
</script>

检测对象是否是另一个对象的原型(或者处于原型链中)

 <script>
var obj={
} //此处创建了一个空对象
var obj1 =Object.create(obj) //用object.create创建了一个新对象,把obj作为obj1的原型
console.log(obj.isPrototypeOf(obj1)) //=> true 此时返回值就true,因obj是obj1的原型
console.log(Object.prototype.isPrototypeOf(obj))//=>true 因为object.prototype是顶级对象,是对象原型上的原型
console.log(Object.prototype.isPrototypeOf(obj1))//=>true 也是对象上的原型
</script>

对象类class是一个标识对象类型的字符串

ECMAscript3和ECMAscript5都没有定义此方法,可以通过顶级对象的toString()方法

js的内建对象都带有toSting方法,所以要用一个CALL回调

代码如下,对何标识对象类型的字符串:

 <script>
function classof(obj){
if(obj === null){
return null
}
if(obj === undefined){
return undefined
}
return Object.prototype.toString.call(obj).slice(8,-1)
}
var x = null; //=>null
var x = undefined; //=> undefined
var x =true //=> boolean
var x = 1234; //=> number
var x = "this is" //=> string
var x = new Array() //=> arry
var x = new Date() //=> date
console.log(classof(x))
</script>

    

js 中对象的特性的更多相关文章

  1. js 中对象属性特性的描述

    如何自定义属性的特性? 用对象.属性的特性和自定义的属性的特性有什么区别? 它的四大特性 writable   enumerable   configable   有什么区别? 先预习一个用对象.属性 ...

  2. js 中对象属性特性2

    对象的存储描述: get   和   set 方法 <script> var obj ={ get age(){ return 22 }, set age(value){ console. ...

  3. js中对象的一些特性,JSON,scroll家族

    一.js中对象的一些特性 对象的动态特性 1.当对象有这个属性时,会对属性的值重写 2.当对象没有这个属性时,会为对象创建一个新属性,并赋值 获得对象的属性的方式 为元素设置DOM0级事件 二.JSO ...

  4. js中迭代元素特性与DOM中的DocumentFragment类型 笔记

    JS中迭代元素特性 在需要将DOM结构序列化为XML或者HTML字符串时,多数都会涉及遍历元素的特性,这个时候attributes属性就可以派上用场. 以下代码展示了如何迭代元素的每一个特性,然后将他 ...

  5. [转]JS中对象与字符串的互相转换

    原文地址:http://www.cnblogs.com/luminji/p/3617160.html 在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: thr ...

  6. JS中对象与字符串的互相转换

    在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError('JSON.parse'); 查询资料,大概意思如下: JSON ...

  7. js中对象转化成字符串、数字或布尔值的转化规则

    js中对象可以转化成 字符串.数字.布尔值 一.对象转化成字符串: 规则: 1.如果对象有toString方法,则调用该方法,并返回相应的结果:(代码通常会执行到这,因为在所有对象中都有toStrin ...

  8. 【转载】js中对象的使用

    原文链接:http://www.jb51.net/article/90256.htm[侵删] 简单记录javascript中对象的使用 一.创建对象 //创建一个空对象 var o={}; //创建一 ...

  9. js中对象使用

    简单记录javascript中对象的使用 一.创建对象 //创建一个空对象 var o={}; //创建一个含有两个属性的对象,x.y var o2={x:12,y:'12',name:'JS'}; ...

随机推荐

  1. OutLook中发送用户密码加密的小技巧

    1     在左上栏目里面选择  New E-mail选项卡,点击进入发送新邮件页面. 2    在第一栏选择Options选项,点击打开 3    看到有一个红色按钮Perssion按钮,打开 4 ...

  2. 在Visual Studio中使用Pseudovariables来帮助调试

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在Visual Studio中使用Pseudovariables来帮助调试.

  3. NLog使用说明

    NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码. NLog允许我们自定义从跟踪消息的来源(source)到记录跟踪信息的目标(target)的规则 ...

  4. Recommended add-ons/plugins for Microsoft Visual Studio

    http://stackoverflow.com/questions/2767/recommended-add-ons-plugins-for-microsoft-visual-studio NUGe ...

  5. java 拦截器和过滤器区别(转载)

    1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3.拦截器只能对action请求起作用,而过滤器则可以对几乎所有的 ...

  6. Antelope与 Barracude MYSQL 文件格式

    作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#163.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究. Antelope是 ...

  7. MYSQL在线注释文档--- 在gdb中显示源码(gdbtui使用方法)----赖明星的个人博客

    http://mingxinglai.com/cn/2013/07/gdbtui/ MySQL源码注释与类图 http://mingxinglai.com/cn/2015/08/mysql-annot ...

  8. Media Player框架

    导入MediaPlayer.framework框架. //声明一个媒体播放器 var moviePlayer:MPMoviePlayerController? @IBAction func playM ...

  9. SoundPool没有声音的问题

    在项目中需要播放一个提示,很短的一个声音,Android中播放声音有两种方式:MediaPlayer和SoundPool.相对来说SoundPool比较轻量级一些,多用在播放比较短急的声音,Media ...

  10. ios开发时候,出现A valid provisioning profile for this executable was not found 错误

    今天一大早起来,做ios的开发,发现了一下错误:A valid provisioning profile for this executable was not found 错误的产生是在开发模式下产 ...