Testing in Chrome 31.0.1650.63 32-bit on Windows Server 2008 R2 / 7 64-bit
Test Ops/sec
Object.defineProperty

for (var i = 0; i < 1000; i++) { obj = {};
Object.defineProperty(obj, "x", {
 get: funct['get'],
 set: funct['set']
})  obj.x = i;
 acc += obj.x;
}
ready
__defineGetter__
for (var i = 0; i < 1000; i++) {
obj = {};
obj.__defineGetter__('x', funct['get']);
obj.__defineSetter__('x', funct['set']);  obj.x = i;
 acc += obj.x;
}
ready
Normal
for (var i = 0; i < 1000; i++) {
obj = {};
 obj._x = i;
 acc += obj._x;
}
ready
Prototype
for (var i = 0; i < 1000; i++) {
obj = {};
obj.prototype = {
 get x() {
  return this._x;
 }, set x(value) {
  this_x = value;
 }
}  obj.x = i;
 acc += obj.x;
}
ready
Setter
for (var i = 0; i < 1000; i++) {
obj = {};
obj.setX = function(value) {
 this._x = value;
}  obj.setX(i);
 acc += obj._x;
}
ready
defineProperty with local funcs
for (var i = 0; i < 1000; i++) {
obj = {};
Object.defineProperty(obj, "x", {
 get: function() { return this._x; },
 set: function(v) { this._x = v; },
 configurable: true
})  obj.x = i;
 acc += obj.x;
}
ready

http://jsperf.com/object-defineproperty-vs-definegetter-vs-normal/49

Object.defineProperty vs __defineGetter__ vs normal的更多相关文章

  1. Object.defineProperty

    属性类型ECMA-262第5版在定义只有内部才用的特性(attribute)时,描述了属性(property)的各种特征.ECMA-262定义这些特性是为了实现JavaScript引擎用的,因此在Ja ...

  2. 关于Object.defineProperty 的基础知识

    Object.defineProperty 这个方法大家耳熟能详,可以对 对象的属性进行添加或修改的操作.即可以进行  数据劫持 .vue就是通过这个方法来劫持数据的. 平时我们创建对象的时候,一般通 ...

  3. javascript之Object.defineProperty的奥妙

    直切主题 今天遇到一个这样的功能: 写一个函数,该函数传递两个参数,第一个参数为返回对象的总数据量,第二个参数为初始化对象的数据.如: var o = obj (4, {name: 'xu', age ...

  4. Object.defineproperty实现数据和视图的联动

    Object.defineproperty语法 var o = {}; // 创建一个新对象 // Example of an object property added with definePro ...

  5. Vue 双向数据绑定原理分析 以及 Object.defineproperty语法

    第三方精简版实现 https://github.com/luobotang/simply-vue Object.defineProperty 学习,打开控制台分别输入以下内容调试结果 userInfo ...

  6. Object.defineproperty实现数据和视图的联动 ------是不是就是 Angular 模型和视图的同步的实现方式???

    参考:http://www.cnblogs.com/oceanxing/p/3938443.html https://developer.mozilla.org/zh-CN/docs/Web/Java ...

  7. 20+行代码使用es5 Object.defineProperty 实现简单的watch功能

    /** * 一个简单的demo 帮助理解defineProperty,只对Object类型参数有效 */ $watch=function(myObject,callback){ function in ...

  8. Object.defineProperty()方法的用法详解

    Object.defineProperty()函数是给对象设置属性的. Object.defineProperty(object, propertyname, descriptor); 一共有三个参数 ...

  9. 理解Object.defineProperty()

    理解Object.defineProperty() Object.defineProperty() 方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 基本语法:Obj ...

随机推荐

  1. spring-security用户权限认证框架

    大家知道在spring中有一个基于acegi开发的spring-security的权限管理模块,它是一个轻量级框架. SpringSecurity能以声明的方式来保护Web应用程序的URL访问,只需简 ...

  2. Azure HDInsight HBase DR解决方案

    Sun wei  Sat, Feb 28 2015 3:07 AM Apache HBase是目前非常流行的NoSQL数据库,通过HDFS+Zookeep+Master+Region Server的架 ...

  3. css选择器,有箭头与没箭头的区别

    div > span 和 div span 的区别 ,即有箭头和没箭头的区别 div > span span 是 div 的下一层级关系 在这种情况下找得到span元素: <div& ...

  4. HDU 5688 Problem D

    Problem D Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  5. Webservice、WSDL三种服务访问的方式【转】

    http://www.cnblogs.com/yongfeng/archive/2013/01/30/2883146.html 用soapUI试了下wsdl的测试,但还是不知道webService和W ...

  6. ZOJ 3299-Fall the Brick(线段树+离散化)

    题意: n个区间 ,给出区间的左右坐标 ,区间内填满宽度为1的箱子,有m个板子给出板子的高度和左右坐标(同高度不重叠) 所有箱子从上向下落,求每块板子能接到的箱子数. 分析: 首先给的区间很大,一开始 ...

  7. Js 与 TextArea

    当给一个js变量赋值一个有换行的值得时候,就会报错: <!DOCTYPE HTML> <html> <head> <script src="http ...

  8. Python第一个入门程序

    #!usr/bin/env python3 #在UNIX上,当某程序在控制台中被引用时,该文件的头两个字节先被读入.如果这两个字节是ASCII字符 #!, #shell就会认为该文件将要由解释器执行, ...

  9. Log Explorer使用说明

    一.介绍 Log Explorer主要用于对MSSQLServer的事物分析和数据恢复.你可以浏览日志.导出数据.恢复被修改或者删除的数据(包括执行过update,delete,drop和trunca ...

  10. 基于寄存器的VM

    jvm是基于栈的,基于栈的原因是:实现简单,考虑的就是两个地方,局部变量和操作数栈 http://ifeve.com/javacode2bytecode/这几篇文章相当不错. http://redna ...