在init之前引用方法
refer method before init
为什么"write2"有效而"write1"无效?
function Stuff() {
this.write1 = this.method;
this.write2 = function() {this.method();}
this.method = function() {
alert("testmethod");
}
}
var stuff = new Stuff;
stuff.write1();
因为第二个函数在执行匿名函数时求this.method
的值,而第一个函数对一个还不存在的东西做了一个引用副本。
这可能会令人困惑,因为似乎write1
和write2
都试图使用/引用一些尚不存在的东西,但当您声明write2
时,您正在创建一个闭包,实际上只复制对this
的引用,然后稍后执行函数体,当this
已通过添加method
修改
它不起作用,因为您在声明this.method
之前引用了它。改变:
function Stuff() {
this.write2 = function() {this.method();}
// First declare this.method, than this.write1.
this.method = function() {
alert("testmethod");
}
this.write1 = this.method;
}
var stuff = new Stuff;
stuff.write1();
相关文章:
- 引用类变量中的原型方法
- 有没有一种方法可以通过只引用JavaScript来执行代码
- 可以“;超级“;可以在子类的方法内部使用,在不直接引用的情况下调用相应的超类方法
- 通过引用Javascript中的另一个函数来传递对象方法
- 这在 Object 方法中不引用对象,而是引用函数绑定到的标记
- 在方法中失去对对象的引用
- 使用clearInterval方法实现的是将区间变量引用设置为null,而不是
- 有没有一种方法可以捕获JavaScript控制台输出,以便我可以在其他地方引用它
- 有没有一种方法可以重新绑定jQuery插件中引用的事件处理程序
- 在JQuery中,'加载'方法'的相对路径在引用项目中的html文件时开始
- 可以't从客户端应用程序引用插件中定义的静态方法
- 更好的设计,以便从对象的方法引用自己的对象的属性
- 为什么Javascript库对数组方法(push,slice等)有本地引用
- 模仿通过引用而不是值将数字传递给函数的任何方法
- 从充当事件处理程序的多个方法引用对象属性
- 在 javascript 中将“this”引用传递给方法的提示
- Java Nashorn中的(De)引用方法变体
- 在 JavaScript 中,如何从更深层次的嵌套方法引用方法的返回值
- 如何从对象中引用方法
- 在init之前引用方法