写出以下代码的输出结果

1,输出执行结果

var a = 0,
    b = 0;
function A(a) {
  A = function (b) {
    alert(a + b++);
  };
  alert(a++);
}
A(1);
A(2);

2,闭包作用域相关题

function fn(n, o) {
  console.log(o);
  return {
    fn: function (m) {
      return fn(m, n);
    },
  };
}
var c = fn(0).fn(1);
c.fn(2);
c.fn(3);

3,闭包题,写出以下代码的输出结果

var i = 20;
function fn() {
  i -= 2;
  return function (n) {
    console.log(++i - n);
  };
}
var f = fn();
f(1);
f(2);
fn()(3);
fn()(4);
f(5);
console.log(i);

4,面向对象面试题: 写出执行结果

function fun() {
  this.a = 0;
  this.b = function () {
    alert(this.a);
  };
}
fun.prototype = {
  b: function () {
    this.a = 20;
    alert(this.a);
  },
  c: function () {
    this.a = 30;
    alert(this.a);
  },
};
var my_fun = new fun();
my_fun.b();
my_fun.c();

5,输出结果:

function fn1() {
  console.log(1);
}
function fn2() {
  console.log(2);
}
fn1.call(fn2);
fn1.call.call(fn2);
Function.prototype.call(fn1);
Function.prototype.call.call(fn1);

6,写出代码的执行结果

function Foo() {
  getName = function () {
    console.log(1);
  };
  return this;
}
Foo.getName = function () {
  console.log(2);
};
Foo.prototype.getName = function () {
  console.log(3);
};
var getName = function () {
  console.log(4);
};
function getName() {
  console.log(5);
}
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();

你可能感兴趣的:(javascript,前端,开发语言)