`
huangyongxing310
  • 浏览: 477819 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

defineProperty Array push 监听

 
阅读更多
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--    <script src="../miniui/scripts/jquery-1.11.1.min.js" type="text/javascript"></script>-->

    <style>
        .parent {
            display: table;
            width: 300px;
            height: 300px;
            text-align: center;
            border: dashed 1px gray;
        }
        .son  {
            display: table-cell;
            height: 100px;
            width: 100px;
            background-color: yellow;
            vertical-align: middle;
        border: dashed 1px red;
        }

        #outer{
            background-color: #13CDF4;
            width: 300px;
            height: 200px;
            position: relative;
        }
        #middle{
            background-color: #E41627;
            width: 100px;
            height: 50px;
            margin: auto;
            position: absolute;
            top: 0;left: 0;right: 0;bottom: 0;
        }
    </style>


</head>
<body>




9
</body>

</html>
<script type="text/javascript">



var arrayPush = {};



var testPush = [];

var aa = Object.getPrototypeOf(testPush);




var arrayProto = Array.prototype
var arrayMethods = Object.create(arrayProto)
console.log(arrayProto);
console.log(arrayMethods);


Object.defineProperty(testPush, "push", {
value: function mutator(){
//缓存原生方法,之后调用
// console.log('array被访问');
// var original = arrayProto["push"]
// var args = Array.from(arguments)
// original.apply(this,arguments)
// console.log(this);

var original = arrayProto["push"]
// var args = Array.from(arguments)
var aaa =original.apply(this,arguments)
console.log(testPush);
console.log('array被访问');
return aaa;
},
enumerable: true,
// writable: true,
configurable: true,
// get:function(){
// console.log("pushdfds");
// console.log(arguments);
// var aaa = testPush.__push__.apply(testPush,arguments)
// return aaa;
// }
})

testPush.push(1);
// [1]
var cc = testPush.push(2);
console.info(testPush)
console.info(cc)

</script>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics