javascript 'this' 用法

标签 javascript class object

假设我有这样的代码:

var object1 = {};
object1.class1 = function() {
    this.property1 = null;
    this.property2 = 'ab';
}

在这种情况下,“this”代表什么? object1 还是 class1?每当我想在对象中定义类构造函数时,最好的方法是什么?

最佳答案

对于class1,因为你不能创建object1类型的对象。

但是,如果代码是:

function object1() {
    this.class1 = function() {
        this.property1 = null;
        this.property2 = 'ab';
    }
}

你可以:

var obj = new object1();
obj.class1();
obj.property2; // => 'ab';

var cls = new obj.class1();
cls.property2; // => 'ab';

所以这可能取决于上下文。

关于javascript 'this' 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3520014/

相关文章:

javascript - 在tinymce中禁用拼写检查器的浏览器上下文菜单

javascript - 旋转盖流效果

html - 使用 DIV 而不是 CLASS 的情况

c# - 是将要从 main() 调用的所有方法声明为静态的还是创建一个包含包括 main 在内的所有方法的类的对象更好?

javascript - 过滤嵌套对象并保留父对象

javascript - 如何更改 ExtJS 4.2 的 .save() JSON 输出

javascript - 强制异步调用以同步方式运行

c# - 如何同时为一个 C# 类分配多个名称

php - 删除 Wordpress 正文类

javascript - 更新 Javascript 对象值给出 null