为什么静态变量不显示输出
why static variable not show output?
我正在尝试创建静态变量和静态函数。但当我访问它时,它给了我不明确的原因?这是我的功能
function Shape(){
this.namev="naven"
Shape.PIe="3.14";
Shape.getName=function(){
return "nveen test shhsd"
}
}
alert(Shape.PIe)
alert(Shape.getName())
您的Shape.getName()
函数在第一次调用Shape()
之后才会初始化(初始化代码在Shape()
内部(,因此Shape.getName
属性在调用Shape()
之前不存在。
也许你想要的是:
// define constructor that should only be called with the new operator
function Shape() {
this.namev="naven";
}
// define static methods and properties
// that can be used without an instance
Shape.PIe="3.14";
Shape.getName=function(){
return "nveen test shhsd"
}
// test static methods and properties
alert(Shape.PIe)
alert(Shape.getName())
请记住,在Javascript中,函数是一个对象,它可以像普通对象一样拥有自己的属性。因此,在这种情况下,您只是将Shape
函数用作一个对象,可以对其放置静态属性或方法。但是,不要期望在静态方法内部使用this
,因为它们没有连接到任何实例。它们是静态的。
如果希望实例属性或方法能够唯一地访问Shape对象实例,则需要以不同的方式创建方法和属性(因为实例方法或属性不是静态的(。
要创建一个由所有实例共享的静态变量,您需要在函数声明之外声明它,如下所示:
function Shape() {
// ...
}
Shape.PIe = "3.14";
alert(Shape.PIe);
有关如何将一些熟悉的OOP访问概念"翻译"为Javascript的更多详细信息,请参阅本文:https://stackoverflow.com/a/1535687/1079597
相关文章:
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 在命令运行时以Grunt显示输出
- 输入富文本以显示输出
- AJAX 不显示输出
- 使用 PHP 在同一页面中显示输出
- 'href'单击时不显示输出
- AngularJS问题未显示输出
- 可以't让localStorage在刷新时显示输出
- 如何在不刷新、显示输出、重新加载表单、冲洗和重复的情况下提交表单
- 此程序不显示输出
- 无法使用 javascript 中的函数在边框中显示输出
- 如何从excel文件中输入,并在速度计上显示输出
- 如何将两个日期之间的固定值更改为变量,并使用事件处理程序Javascript显示输出
- 显示输出计算的Javascript
- 无法用Jquery在Chrome控制台显示输出
- 在选择单选按钮后,如何根据所选的单选按钮显示输出
- jQuery AJAX在第一个PHP条件之后不显示输出
- Javascript只显示输出中的前4个字符
- console.log在Chrome浏览器中没有显示输出
- 为什么静态变量不显示输出