JS基础知识(-)

1 , call方法: 

 

语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 
定义:调用一个对象的一个方法,以另一个对象替换当前对象。 
说明: 
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
复制代码
 function Class1()
{
    this.showTxt = function(txt)
    {
        alert(txt);
    }
}

function Class2()
{
    Class1.call(this);
}

var c2 = new Class2();

c2.showTxt("cc"); 
复制代码
这样 Class2 就继承Class1了,Class1.call(this) 的 意思就是使用 Class1 对象代替this对象,那么 Class2 中不就有Class1 的所有属性和方法了吗,c2 对象就能够直接调用Class1 的方法以及属性了,执行结果就是:alert(“cc”);

对的,就是这样,这就是 javaScript 如何来模拟面向对象中的继承的 
 
在node.js中的常见的代码:
events.EventEmitter.call(this);
 
2,给Array加方法
 Array.protoType.indexOf = function(Object){  
          for(var i = 0;i<this.length;i++){  
             if(this[i] == Object){  
                return i;  
         }  
     }

 

3,关于大括号

  { } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。

  如:var LangShen = {"Name":"Langshen","AGE":"28"};

  上面声明了一个名为 LangShen 的对象,多个属性或函数用,(逗号)隔开,因为是对象的属性,

  所以访问时,应该用.(点)来层层访问:LangShen.Name、LangShen.AGE,当然我们也可以用数组的方式来访问,如:LangShen["Name"]、LangShen["AGE"],结果是一样的。

该写法,在JSON数据结构中经常用,除此之外,我们平时写函数组的时候,也经常用到,如:

  

var LangShen = {
       Name = function(){
                  return "LangShen";
                   },
      Age = function(){
                 return "28";
                 }
}
调用方式差不多,因为是函数组,所以要加上(),如:alert( LangShen.Name() );
 
 

 

posted on   每当变幻时  阅读(310)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2012-11-21 orcal_sql编写(我们似曾相识系列5)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示