JS中的Function对象

时间:2023-03-09 00:26:11
JS中的Function对象

  Function是函数的原型,所有的函数都来源于Function,获得函数的方法有两种类型,分为动态函数和函数继承。

动态函数

创建一个Function
语法: var func = new Function(arg1, arg2, ..., argN, 函数体);

   var str = "var x = 5; for(var i = 0; i < 10; i++) { alert(x+i); }";
   var func = new Function(str);

调用:func();

函数继承

  原型链:js构造函数创建的每一个对象都是来源于原型的派生对象,而在js中每一个函数都有一个属性,叫prototype(原型),所有的对象的原型构成链以后,都到Object,而Object的原型是null

  扩展方法:为字符串添加扩展方法, 就是给字符串的原型添加一个方法即可

  如   String.prototype.AddWJX = function() {   

    return "☆" + this + "☆";  //this表示字符串本身
    };

  实现函数继承的方法:js的继承来源于对象而非类,通过Function对象为所有的构造函数添加方法。  

  //为Function的原型添加一个inherit()方法

  Function.prototype.inherit = function(objBase) {
    // 传进来就是父类对象
    this.prototype = objBase;
  };

  var o = {name:"上帝", sex:"女", age:100};

  //方法继承
    var func = function (){};
  func.inherit(o);

  //对象继承
  var Person = function() {
    this.say = function() {
      alert("名字是" + this.name);
    };
  };
  Person.inherit(o);

  var pp = new Person();
  pp.say();

多继承

  多继承就是将多个对象的成员,交给当前对象(原型),通过对象.prototype[索引] 的方式为对象添加多个原型