//call function A() { name = "abc"; this.ShowName = function (val) { alert(name + "," + val); } } function B() { name = "def"; } var a = new A(); var b = new B(); a.ShowName.call(b, "123"); //返回的是 def, 123 //apply function A1(arr) { this.value = 105; if (arguments[1]) { if (arguments[1] < 100) this.value = 88; else this.value = arguments[0] } }; function B1(arrt) { A1.apply(this, arguments); console.log("B1返回结果:"+this.value); } B1(66, 105); //返回 66; //callee function A2(x) { if (x > 5) { console.log(x); arguments.callee(x - 1); } } A2(10); //返回:10,9,8,7,6