JavaScript对象规则

时间:2017-01-04 08:00:29

标签: javascript function object

我目前正在研究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());

3 个答案:

答案 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");