我目前正在研究javascript函数和对象,但是有点混乱。
我创建了一个对象并在窗口中调用了它的方法
obj.something();
,它给了我结果但是当我在console.log(obj.something());
这样的控制台中编写相同的代码时,它会在控制台中为我提供undefined
所以,我的问题显然是为什么&如何?
var obj ={
value: 1,
increment: function () {
this.value += 1
// return this
},
add: function (v) {
this.value += v
// return this
},
shout: function () {
console.log(this.value);
// return this
}
};
obj.shout();
console.log(obj.shout());
答案 0 :(得分:3)
undefined
是没有return
的函数的默认返回值。
来自return
statement的MDN文档:
在函数中调用
return
语句时,将停止执行此函数。如果指定,则将给定值返回给函数调用者。如果省略表达式,则返回undefined
。
答案 1 :(得分:1)
$record['patient_name'] = $_POST['patient_name'];
$record['patient_address']=$_POST['patient_address'];
$record['patient_pass']=$_POST['patient_pass'];
$record['patient_cell']=$_POST['patient_cell'];
$dbname= new Db();
$dbname->Add($record);
答案 2 :(得分:0)
您可以使用 .call()而不是使用()的显示而不添加“返回” >在一个函数中。
var obj ={
value: 1,
increment: function () {
this.value += 1
// return this
},
add: function (v) {
this.value += v
// return this
},
shout: function () {
console.info("Line-14");
console.log(this.value);
console.info("Line-16");
//return;
}
};
var objectShootResult = obj.shout;
console.info("Line-21");
objectShootResult.call(obj);
console.info("Line-22");