Abd*_*ziq -1 javascript function
所以这是一些代码
var name = 'ali';
function say() {
alert(name);
}
Run Code Online (Sandbox Code Playgroud)
因此,这将警告'ali',因为名称函数现在由全局对象拥有以下代码
var oobj {
var name: 'raziq',
say:function () {
alert (name);
}
}
oobj.say();
Run Code Online (Sandbox Code Playgroud)
所以现在say函数由oobj对象拥有,因此name属性应该警告'raziq'而不是'ali'.顺便说一句,我知道使用这个关键字
我的问题是什么会被提醒和你?
---更新---
基本上,一个是变量,一个是属性.您以两种不同的方式访问它们
在您的问题中,您声明一个变量name和一个函数.在任何时候,如果你没有特别重新定义name那么它将始终是那个价值.
在你的情况,你认为你正在重新定义name,当你做
var oobj = {
name: 'raziq'
Run Code Online (Sandbox Code Playgroud)
但你不是.您正在声明oobj对象的属性.即如果我尝试从对象外部提醒名称,它将查找名称的变量声明,它将找到您设置为'ali'的全局变量.为了获得property名称,你必须告诉它找到它的"路径".路径是oobj.name
你在一个物体内,所以你不要使用var =和;.你使用逗号,就可以了say: function() {
var oobj = {
name: 'raziq',
say: function () {
alert(this.name);
}
}
oobj.say();
Run Code Online (Sandbox Code Playgroud)