js 关于this的一些语法问题
2007-02-07 11:53
876 查看
问题内容:js 关于this的一些语法问题
原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=5064915
所属论坛:JavaScript 审核组:WEB开发
提问者:hejunbin 解决者:BlueDestiny
感谢:BlueDestiny
关键字:JavaScript Web 开发 function object bar property return window alert foo foo.bar oself
答案:
foo = {
'bar': function () {
alert(this);
},
'toString': function () {
return 'foo';
}
};
foo.bar();//返回的是"foo"
(foo.bar)();//返回的是"[object Window]"
(foo.bar || null)();//返回的是"[object Window]"
bar = foo.bar; bar();//返回的是"[object Window]"
这个是为什么啊,还有如果是foo.bar,这个有意义吗,为什么
Object.prototype.extend = function(object) {
for (property in object) {
this[property] = object[property];
}
return this;
}
可以实现
function extend(ob1, ob2) {
for (property in ob2) {
ob1[property] = ob2[property];
}
return ob1;
}
不能实现
这个又是为什么?
问题多了点,麻烦各位大哥啦:)
---------------------------------------------------------------
刚才写了文章,就顺便把代码一并贴过来吧,改了一下代码执行,这样理解就明白了
<script>
foo = {
'bar': function () {
var oSelf = this;
alert(this.toString);
if (oSelf==window) {
oSelf = foo;
}
alert(oSelf);
},
'toString': function () {
return 'foo';
}
};
window.toString = function () {
alert("引用全局this --- window");
}
foo.bar();
(foo.bar)();
(foo.bar || null)();
bar = foo.bar; bar();
</script>
原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=5064915
所属论坛:JavaScript 审核组:WEB开发
提问者:hejunbin 解决者:BlueDestiny
感谢:BlueDestiny
关键字:JavaScript Web 开发 function object bar property return window alert foo foo.bar oself
答案:
foo = {
'bar': function () {
alert(this);
},
'toString': function () {
return 'foo';
}
};
foo.bar();//返回的是"foo"
(foo.bar)();//返回的是"[object Window]"
(foo.bar || null)();//返回的是"[object Window]"
bar = foo.bar; bar();//返回的是"[object Window]"
这个是为什么啊,还有如果是foo.bar,这个有意义吗,为什么
Object.prototype.extend = function(object) {
for (property in object) {
this[property] = object[property];
}
return this;
}
可以实现
function extend(ob1, ob2) {
for (property in ob2) {
ob1[property] = ob2[property];
}
return ob1;
}
不能实现
这个又是为什么?
问题多了点,麻烦各位大哥啦:)
---------------------------------------------------------------
刚才写了文章,就顺便把代码一并贴过来吧,改了一下代码执行,这样理解就明白了
<script>
foo = {
'bar': function () {
var oSelf = this;
alert(this.toString);
if (oSelf==window) {
oSelf = foo;
}
alert(oSelf);
},
'toString': function () {
return 'foo';
}
};
window.toString = function () {
alert("引用全局this --- window");
}
foo.bar();
(foo.bar)();
(foo.bar || null)();
bar = foo.bar; bar();
</script>
相关文章推荐
- 关于js和jquery的一些问题
- 关于Vivado的SDK编译一直报错一些语法问题的解决
- 关于JS一些验证邮箱的一些问题
- 关于JS的一些实际问题
- 关于this的一些问题(转载)
- 关于一些基础的js对象的属性和方法问题
- 关于ajaxfileupload.js一些问题和上传图片就立即显示图片功能
- JS 中关于this 执行环境的问题_part1
- 关于JS对象的一些小问题
- 关于JS中for循环时,作用域问题和this指针指向的总结
- 关于语法运用的一些其他问题
- JS 中关于this 执行环境的问题_part2
- 关于js语法(运算中出现无限大的问题)本身的错误的解决方案
- 关于 IE firefox Chrome下的通过用js 关闭窗口的一些问题
- 关于js原生的一些问题整理(一)
- 关于js中的this的指向问题(一)
- bootstrap+angular关于js常见的一些问题
- 关于JS的一些问题--要整理
- 收集关于angular与JS的一些常见问题 总结
- JS中关于跨域同源的一些问题