老莫的笔记本  
  
查看: 1181|回复: 1

JS 对象4连

[复制链接]

664

主题

880

帖子

5155

积分

超级版主

Rank: 8Rank: 8

积分
5155
发表于 2018-8-15 17:45:32 | 显示全部楼层 |阅读模式
回复

使用道具 举报

664

主题

880

帖子

5155

积分

超级版主

Rank: 8Rank: 8

积分
5155
 楼主| 发表于 2018-8-15 18:05:51 | 显示全部楼层
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="utf-8">
  5.     <title>call的测试</title>
  6. </head>
  7. <body>
  8.     <div>
  9.         这是call 的测试
  10.         1.每个函数都包含两个非继承而来的方法:call() 和 apply()方法
  11.         2.相同点:两个方法的作用是一样的
  12.         <hr />
  13.         都是在特定的作用域中使用函数,等于设置函数体内this 对象的值,以扩充函数赖以运行的作用域。
  14.         <hr />
  15.         <p id="dk"></p>
  16.         <input type="text" id="int"/>
  17.     </div>
  18.     <script>
  19.         var dk= document. getElementById('dk');
  20.         var int = document.getElementById('int')
  21.         window.color='red        document.color='yellow
  22.         var s1 = {color:'blue'};
  23.         function changeColor(){
  24.             console.log(this.color);
  25.         }
  26.         changeColor.call(); //输出结果red 默认传递参数
  27.         changeColor.call(window); //输出 red
  28.         changeColor.call(document); //输出 yellow
  29.         changeColor.call(s1); //输出 blue
  30.         changeColor.call(this); //输出 red
  31.         var pet = {
  32.             words:'--d-d-d-',
  33.             speak:function (say)
  34.             {
  35.                 dk.innerText = say +' ' +this.words;
  36.             }
  37.         }
  38.         var lmm={
  39.             words:'额这是lmm的word'
  40.         }
  41.         function mp(name)
  42.         {
  43.             this.name = name;
  44.             this.sp=function(){
  45.                 // console.log(this.words)
  46.                 dk.innerText = this.name
  47.             }
  48.         }
  49.         function dh()
  50.         {
  51.             mp.apply(this, arguments);
  52.         }
  53.         var dog = new dh('小王')
  54.         // enter 事件
  55.         int.onkeydown=function(event){
  56.             var e = event || window.event;
  57.             if(e && e.keyCode==13){ // enter 键
  58.                
  59.                 // var s1 = int.value;
  60.                 // // pet.speak(s1)
  61.                
  62.                 // // 这里将this的指向改成了lmm
  63.                 // pet.speak.call(lmm,'我擦厉害了')
  64.                 dog.sp();
  65.             }
  66.         };
  67.         function add() {
  68.             var len = arguments.length,
  69.                 sum = 0;
  70.             for(;len--;){
  71.                 sum += arguments[len];
  72.             }
  73.             return sum;
  74.         }
  75.         console.log( add(1,2,3) );   //6
  76.         console.log( add(1,3) );     //4
  77.         console.log( add(1,2,3,5,6,2,7) );   //26
  78.     </script>
  79. </body>
  80. </html>
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表