5.3 KiB
5.3 KiB
this练习
注:document.write的题目 需要写出在页面上打印的结果
-
下面代码的执行结果是什么 为什么
var person = { firstName: "John", lastName : "Doe", id : 5566, fullName : function() { return this.firstName + " " + this.lastName; } }; // 显示对象的数据 document.getElementById("demo").innerHTML = person.fullName();
-
下面代码的执行结果是什么 为什么
var x = this; document.getElementById("demo").innerHTML = x;
-
下面代码的执行结果是什么 为什么
"use strict"; var x = this; document.getElementById("demo").innerHTML = x;
-
下面代码的执行结果是什么 为什么
document.getElementById("demo").innerHTML = myFunction(); function myFunction() { return this; }
-
下面代码的执行结果是什么 为什么
"use strict"; document.getElementById("demo").innerHTML = myFunction(); function myFunction() { return this; }
-
下面代码的执行结果是什么 为什么
<body> <h2>JavaScript <b>this</b> 关键字</h2> <button onclick="this.style.display='none'">点我后我就消失了</button> </body>
-
下面代码执行结果是什么 为什么
var person = {
firstName : "John",
lastName : "Doe",
id : 5566,
myFunction : function() {
return this;
}
};
// 显示表单数据
document.getElementById("demo").innerHTML = person.myFunction();
- 把第7题的对象中的属性和方法挨个打印在页面上
- 下面代码的执行结果是什么 为什么
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
// 显示对象的数据
document.getElementById("demo").innerHTML = person.fullName();
- 下面代码的执行结果是什么 为什么
var person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person2 = {
firstName:"John",
lastName: "Doe",
}
person1.fullName.call(person2);
- 下面代码的执行结果是什么 为什么
function speak(){
var name = this.name
console.log(`Hello I am ${name}`)
}
var me = {
name: 'a',
speak: speak
}
var you = {
name: 'b',
speak: speak
}
me.speak()
you.speak()
- 下面代码的执行结果是什么 为什么
function fn(){
console.log(this.name)
}
fn.name = 'xxx'
fn()
- 下面代码的执行结果是什么 为什么
function foo() {
var a = 2;
this.bar();
}
function bar() {
console.log( this.a );
}
foo();
- 下面代码的执行结果是什么 为什么
function foo(){
console.log(this.a)
}
var a = 2
foo()
- 下面代码的执行结果是什么 为什么
function foo() {
console.log( this.a );
}
var obj = {
a: 2,
foo: foo
};
obj.foo();
- 下面的fn中的this指向谁
obj1.obj2.obj3.fn()
- 下面代码的执行结果是什么 为什么
function foo() {
console.log( this.a );
}
var obj = {
a: 2,
foo: foo
};
var bar = obj.foo; // 函数别名!
var a = "xxxxx"
bar();
- 下面代码的执行结果是什么 为什么
function foo() {
console.log( this.a );
}
var obj = {
a: 2,
foo: foo
};
var a = "xxxxx"
setTimeout( obj.foo ,100);
- 下面代码的执行结果是什么 为什么
function foo(something) {
console.log( this.a, something );
return this.a + something;
}
function bind(fn, obj) {
return function() {
return fn.apply( obj, arguments );
};
}
var obj = {
a:2
};
var bar = bind( foo, obj );
var b = bar( 3 ); // 2 3
console.log( b );
- 下面代码的执行结果是什么 为什么
const test = {
prop: 42,
func: function() {
return this.prop;
},
};
console.log(test.func());
- 下面代码的执行结果是什么 为什么
console.log(this === window);
a = 37;
console.log(window.a);
this.b = "MND";
console.log(window.b)
console.log(b)
- 下面代码的执行结果是什么 为什么
function f1(){
return this;
}
//在浏览器中:
f1() === window; //在浏览器中,全局对象是window
//在Node中:
f1() === globalThis;
- 下面代码的执行结果是什么 为什么
function f2(){
"use strict"; // 这里是严格模式
return this;
}
f2() === undefined;
- 下面代码的执行结果是什么 为什么
var obj = {a: 'Custom'};
var a = 'Global';
function whatsThis() {
return this.a;
}
whatsThis();
whatsThis.call(obj);
whatsThis.apply(obj);
- 下面代码的执行结果是什么 为什么
function C(){
this.a = 37;
}
var o = new C();
console.log(o.a);
function C2(){
this.a = 37;
return {a:38};
}
o = new C2();
console.log(o.a);
- 下面代码的执行结果是什么 为什么
<button onclick="alert(this.tagName.toLowerCase());">
Show this
</button>