博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object 提供的对象创建方式
阅读量:6240 次
发布时间:2019-06-22

本文共 1610 字,大约阅读时间需要 5 分钟。

Object解读

Object中的create方法的第一个参数是待创建对象的原型对象,第二个参数是待创建对象的属性定义。**属性定义解读如下:**其中第二个参数是可选的,如果被指定了且不是undefined类型,一个对象的可枚举的自身的属性(并非原型链上的可枚举属性)指定的属性描述符将会被添加到新创建的对象,和指定的属性名称一样,这个参数的形式和使用Object.defineProperties()方法的的第二个参数是一致的。返回值: 一个以第一个参数为原型对象且含有第二个参数指定的属性的新创建的对象异常:当第二个参数不是空或者或者是一个普通对象;

示例

//shape -super classfunction Shape(){  this.x=0;  this.y=0;};//super class methodShape.prototype.move=function(x,y){    this.x+=x;    this.y+=y;    console.info('shape moved....');};//Rectangle -sub classfunction Rectangle(){   Shape.call(this);//使用对象冒充实现继承};//sub class extends super classRectangle.prototype = Object.create(Shape.prototype);Rectangle.prototype.constructor = Rectangle;var rect = new Rectangle();console.log('Is rect an instance of Rectangle?',rect instanceof Rectangle); //will output trueconsole.log('Is rect an instance of Shape?',rect instanceof Shape);// will output truerect.move(1,1);// will output 'shape moved....'

clipboard.png


Object.create的使用范例:

//原型对象var proto  =  {    init:function(){       console.info('init method...');    },    service:function(){       console.info('service method');    },    destroy:function(){       console.info('destroy method..');    }  } //目标对象 var target = Object.create(proto,{     k_init:{        value:function(){            console.info('k_init method...');        }     },     k_service:{        value:function(){            console.info('k_service method...');        }     },     k_destroy:{        value:function(){            console.info('k_destroy method...');        }     }});

console.info(target)--->输入如下:

clipboard.png

console.info(Object.getPrototypeOf(target))--->输出如下:

clipboard.png

未完待续...

转载地址:http://nhdia.baihongyu.com/

你可能感兴趣的文章
flutter中的异步
查看>>
计算机高手也不能编出俄罗斯方块——计算机达人成长之路(16)
查看>>
# 2017-2018-1 20155224 《信息安全系统设计基础》第七周学习总结
查看>>
scikit-learn预处理实例之一:使用FunctionTransformer选择列
查看>>
邮件客户端导入邮件通讯录地址薄
查看>>
Linux系统安装
查看>>
Cassandra监控 - OpsCenter手册
查看>>
一些关于写Java代码的建议
查看>>
网络社交如何保护个人隐私?做好这4步
查看>>
SQL*Plus中的Echo
查看>>
SEO基础知识8大精华文章之第一篇(连载)
查看>>
面向sql编程
查看>>
对前面的自定义的toast制作拖拽效果,以及双击居中效果
查看>>
如何规划构建一套大型的Citrix桌面虚拟化架构 - 后记
查看>>
animationFromTop
查看>>
SEM如何做数据分析?
查看>>
语音转文字如何在线转换的?
查看>>
PXE批量实现自动化安装系统
查看>>
tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError:)...
查看>>
为域用户创建漫游用户配置文件
查看>>