这段代码工作得很好,尽管我有兴趣知道的是,是否有一种方法可以更好地工作并且是我更喜欢的,但它似乎不起作用。是否可以这样做,请检查第二个代码示例以便理解当我说“首选方式”时我的想法。
代码1
function a(y){this.b=y;};
var ax = new a("oka");
alert(ax.b);
代码 2(首选方式,但不起作用)
function a(){this.b = alert(y);this.y = y;}
var ax = new a();
ax.y="okay";
ax.b;
最佳答案
您对 this
的使用大部分都很好,但问题是这一行:
this.b = alert(y);
...调用 alert
并将其返回值分配给b
。如果您希望 b
成为一个函数,您可以这样做:
this.b = function() {
alert(this.y); // Note `this`
};
...所以:
function a() {
this.b = function() {
alert(this.y);
};
}
var ax = new a();
ax.y = "okay";
ax.b(); // Note the ()
<小时/>
旁注:JavaScript 中压倒性的惯例是为构造函数(通过 new
调用的函数)提供以大写字母开头的名称。例如,A
而不是 a
。
关于javascript - 我对 javascript 中的 this 关键字感到困惑,我想知道我是否可以做我想要的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30805568/