加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

JavaScript面试题

发布时间:2021-07-11 08:36:21 所属栏目:运营 来源:网络整理
导读:副标题#e# h1 id="js相关问题"JS相关问题 h3 id="数组去重"数组去重 function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i var aa = [1,2,4,9,6,7,5,3,5]; console.log(aa) console.log(uniq(aa)) h3 id="谈一谈javascript作用域链"1

例子

function SuperType(name) {
this.name = name;
this.colors = ["red","green"];
}
SuperType.prototype.sayName = function() {
console.log(this.name);
}
function SubType(name,age) {
SuperType.call(this,name);//继承属性
this.age = age;
}
//继承方法
SubType.prototype = new SuperType();
Subtype.prototype.constructor = Subtype;
Subtype.prototype.sayAge = function() {
console.log(this.age);
}
var instance1 = new SubType("EvanChen",18);
instance1.colors.push("black");
consol.log(instance1.colors);//"red","black"
instance1.sayName();//"EvanChen"
instance1.sayAge();//18
var instance2 = new SubType("EvanChen666",20);
console.log(instance2.colors);//"red","green"
instance2.sayName();//"EvanChen666"
instance2.sayAge();//20

  • 思路:创建一个仅用于封装继承过程的函数,该函数在内部以某种方式来增强对象,最后再像真的是它做了所有的工作一样返回对象

例子

function createAnother(original) {
var clone = object(original);  //通过调用函数创建一个新对象
clone.sayHi = function () {  //以某种方式来增强这个对象
alert("hi");
};
return clone;  //返回这个对象
}
var person = {
name:"EvanChen","Van"];
};
var anotherPerson = createAnother(person);
anotherPerson.sayHi();///"hi"

  • 思路:通过借用构造函数来继承属性,通过原型链的混成形式来继承方法
  • 本质上,就是寄生式继承来继承超类型的原型,然后再将结果指定给子类型的原型基本模型如下所示

      function inheritProperty(subType,superType) {
      var prototype = object(superType.prototype);//创建对象
      prototype.constructor = subType;//增强对象
      subType.prototype = prototype;//指定对象
      }

    例子

      function SuperType(name){
      this.name = name;
      this.colors = ["red","green"];
      }
      SuperType.prototype.sayName = function (){
      alert(this.name);
      };
      function SubType(name,age){
      SuperType.call(this,name);
      this.age = age;
      }
      inheritProperty(SubType,SuperType);
      SubType.prototype.sayAge = function() {
      alert(this.age);
      }
  • 原型prototype机制或apply和call方法去实现较简单,建议使用构造函数与原型混合方式

      function Parent(){
          this.name = 'wang';
      }
    

    function Child(){
    this.age = 28;
    }
    Child.prototype = new Parent();//继承了Parent,通过原型

    var demo = new Child();
    alert(demo.age);
    alert(demo.name);//得到被继承的属性

  • Object number function boolean undefined

  • 数据封装类对象:Object、Array、Boolean、Number、String
  • (编辑:PHP编程网 - 湛江站长网)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!