嗨,我想尝试在javascript中解决一些基本的东西,我想创建相当于一个类看到下面:
var myTest = {
myTester:"testing",
testCode:function(){
return myTester;
}
};
Run Code Online (Sandbox Code Playgroud)
当我打电话给alert(myTest.testCode()); 我得到错误时myTester未定义;
我也试图设置myTester的值也有类似的麻烦,我想在这里实现的是这样的事情:
var myObj = myTest.testCode();
var tester = myObj.myTester;
Run Code Online (Sandbox Code Playgroud)
因为myObj是一个我应该创建的对象能够访问它的值,但我通常不做javascript只是jQuery,我试图在纯javascript创建一个应用程序只是为了大脑饲料,并会欣赏一点指导,尤其是你做什么实际上叫这个,是一个类????
谢谢
你必须访问this:
var myTest = {
myTester:"testing",
testCode:function(){
return this.myTester;
}
};
Run Code Online (Sandbox Code Playgroud)
说明:在每一个功能,this是指函数被调用的背景下,如果你调用一个函数,func()然后this将引用全局对象(window浏览器).
如果你打电话,obj.func()那么this将参考obj.
这是函数和对象之间的唯一连接.将函数定义为对象属性的这一事实并不会使函数知道该对象.
函数是JavaScript中的第一类对象,因此不绑定到任何对象(或类)(就像其他语言一样,例如Java).
但
var myObj = myTest.testCode();
var tester = myObj.myTester;
Run Code Online (Sandbox Code Playgroud)
不起作用,因为myTest.testCode()返回字符串"testing"(并且字符串没有myTester属性).如果你想使这段代码工作,你将不得不返回this在testCode:
var myTest = {
myTester:"testing",
testCode:function(){
return this;
}
};
Run Code Online (Sandbox Code Playgroud)
但是,两条线是相同的
var tester = myTest.myTester;
Run Code Online (Sandbox Code Playgroud)
我建议阅读一些JavaScript的介绍,例如MDC - JavaScript指南,特别是关于对象的阅读.
PS:为了非常正确,JavaScript中不存在类.只有对象和构造函数.
| 归档时间: |
|
| 查看次数: |
6490 次 |
| 最近记录: |