Javascript 当添加到函数对象时,属性在哪里

Javascript 当添加到函数对象时,属性在哪里,javascript,function,javascript-objects,Javascript,Function,Javascript Objects,因为上面的函数是JavaScript对象,所以我们可以向它添加属性,比如foo.p=6。但是在执行console.log(foo)时,我无法看到对象的p属性,但可以通过foo.p和foo['p']访问 我也不能访问 fo。如果我们将Foo看作JavaScript对象,则。 “a”是一个局部变量,不能从函数外部访问。< /P> 你会喜欢这样的东西: function foo() { var a=5; } 或作为普通对象: var myClass = function(){ thi

因为上面的函数是JavaScript对象,所以我们可以向它添加属性,比如
foo.p=6
。但是在执行
console.log(foo)
时,我无法看到对象的
p
属性,但可以通过
foo.p
和foo['p']访问

我也不能访问<代码> fo。如果我们将Foo看作JavaScript对象,则。

“a”是一个局部变量,不能从函数外部访问。< /P> 你会喜欢这样的东西:

function foo()
{
       var a=5;
 }
或作为普通对象:

var myClass = function(){
this.foo = 'bar';
}

var myInstance = myClass();
myInstance.foo // 'bar'
“a”是一个局部变量,不能从函数外部访问

你会喜欢这样的东西:

function foo()
{
       var a=5;
 }
或作为普通对象:

var myClass = function(){
this.foo = 'bar';
}

var myInstance = myClass();
myInstance.foo // 'bar'

实现这一目标的方法很少。一种是使用Javascript中的对象,另一种是使用称为“模块模式”的对象。 要使用对象,可以执行以下操作:

var myObj = {
foo: 'bar'
}

myObj.foo // 'bar'
myObj.foo = 123;
myObj.foo // 123
模块模式的工作原理如下:

function MyObject() {
  this.foo = "myObj";
}
var mo = new MyObject();
console.log(mo.foo); //Will print "myObj".

实现这一目标的方法很少。一种是使用Javascript中的对象,另一种是使用称为“模块模式”的对象。 要使用对象,可以执行以下操作:

var myObj = {
foo: 'bar'
}

myObj.foo // 'bar'
myObj.foo = 123;
myObj.foo // 123
模块模式的工作原理如下:

function MyObject() {
  this.foo = "myObj";
}
var mo = new MyObject();
console.log(mo.foo); //Will print "myObj".
尝试
console.dir(foo)concole.log
只是输出一些浏览器认为有用的值表示形式

foo.a
无法工作
a
是一个局部变量,不是属性,仅在执行
foo
时存在。

尝试
console.dir(foo)concole.log
只是输出一些浏览器认为有用的值表示形式


foo.a
无法工作<代码>一个
是一个本地变量,不是属性,仅在执行
foo
时存在。

记录对象时,浏览器将选择如何在控制台中呈现它。这可能与对其调用
.toString()
一样简单,也可能与使您能够导航其属性一样复杂

此外,控制台不是标准配置。浏览器可以随心所欲地实现它,不过为了方便起见,他们会保持一种通用的风格。然而,这最终意味着它们将有所不同

Internet Explorer:

谷歌浏览器:


请注意,我必须使用
console.dir()
强制Chrome为我提供对象的可导航视图,而不是其简单的
.toString()
表示。

记录对象时,浏览器将选择如何在控制台中呈现它。这可能与对其调用
.toString()
一样简单,也可能与使您能够导航其属性一样复杂

此外,控制台不是标准配置。浏览器可以随心所欲地实现它,不过为了方便起见,他们会保持一种通用的风格。然而,这最终意味着它们将有所不同

Internet Explorer:

谷歌浏览器:


请注意,我必须使用
console.dir()
强制Chrome为我提供对象的可导航视图,而不是其简单的
.toString()
表示。

a
不等于
p
。请仔细阅读问题;)但p不是其foo()函数中的变量。正确。OP试图在函数对象上设置属性,并询问它为什么不显示。
a
不等于
p
。请仔细阅读问题;)但p不是其foo()函数中的变量。正确。OP试图在函数对象上设置一个属性,并询问它为什么没有显示。这不是所问的问题。回答得好,但离题;)这不是被问到的问题。回答得好,但离题;)看看最后一句话。哇>>所以最后一句话是一个完全独立的问题。我的错。看一下最后一句。哇>>所以最后一句是一个完全独立的问题。我的错。