当函数返回某些内容时,new 不发挥任何作用
new doesn't play any role when the function returns something
function f1(){
console.log("inside f1");
this.a = 2;
};
var x1 = f1(); => inside f1
x1; => undefined
var x1 = new f1(); => inside f1
x1; => f1 {a: 2}
当 f1 有返回值时,
function f2(){
console.log("inside f2");
this.b = 2;
return { c :3 };
};
var x1 = f2(); => inside f2
x1; => Object {c: 3}
var x1 = new f2(); => inside f2
x1; => Object {c: 3}
在这种情况下,我将如何访问 B?
通过 new 调用构造函数将创建一个新对象,并且this
关键字将分配给这个新对象,最后它默认返回新对象。但是,如果显式使用 return,则可以覆盖此新对象。
关键字"new"首先返回自定义对象。 因此,请尝试以下代码。
function f2(){
console.log("inside f2");
this.b = 2;
return [ this, { c :3 }];
};
var x1 = new f2();
您可以像这样访问它。
x1[0].b
如果你使用的是jQuery,也许使用'$.extend()'来添加返回的对象。
F2 变为:
function f2(){
this.b = 2;
$.extend(this, { c: 3 });
};
然后:
new f2() => { b: 2, c: 3 }
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 将作用域存储在JSON中
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- AngularJS-由$scope创建的作用域何时执行$new()已删除.垃圾收集器或Angular负责处理它吗
- new Date().toLocaleString 在 Firefox 上不起作用
- 当函数返回某些内容时,new 不发挥任何作用
- 在单个元素上使用new/isolated作用域的两个属性指令
- Mootools的new Element不起作用
- new函数作用域
- 为什么在使用$new时不能访问我的作用域属性
- fabric.js -如果属性定义在new fabric.Circle()括号之外,则Circle不起作用