JS基础知识(-)总结

无情 阅读:212 2021-05-02 15:06:01 评论:0

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() );
 
 

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们