JS计算题汇总

138 阅读1分钟

1、

function fn(i){
	return function(n){
		console.log(n + (i++))
	}
}
var f = fn(10);
f(20);
fn(20)(40);
fn(30)(50);
f(30);

2、

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

3、

var num = 10;
var obj = {num:20};
obj.fn = (function(num){
	this.num = num * 3;
	num++;
	return function(n){
		this.num += n;
		num++;
		console.log(num);
	}
})(obj.num); 
var fn = obj.fn;
fn(5);	
obj.fn(10);2
console.log(num,obj.num); 

4、

var fullName = 'language';
var obj = {
	fullName: 'javascript',
	prop: {
		getFullName: function(){
			return this.fullName;
		}
	}
}
console.log(obj.prop.getFullName());
var test = obj.prop.getFullName;
console.log(test()); 

5、

var Tom = {
	name: 'Tom',
	show: function(){
		console.log(this.name);
	},
	wait: function(){
		var fun = this.show;
		fun();
	}
}
Tom.wait(); 

6、

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

计算题结果 1、 30 60 80 41 2、 4 8 12 8 3、 22 23 65 30 4、 undefined 'language' 5、 'window' 6、 0 30