function使用

function names(_name, _age) {

    name: '张三';
    age: "18";
    my() {           // {  报错:SyntaxError: Unexpected token '{'
          console.log(this.name)
    }

}

var a = names()
a.my()
var b = names();
b.my()

=======================================
// 正常打印

function names(name, age) {
    return{
        name:'张三',
        age:"18",
        my(){
            console.log(this.name)
        }
    }
}

var a = names()
a.my()
var b=names();
b.my()

为什么第一种写法错了,就因为没有 return 嘛?正确写法怎么写(不 return 的情况下)

你names()是普通函数,普通函数只有用 return 才能返回内容
你应该是要用面向对象的写法吧,names()写成类的构造函数

function names(_name, _age) {
 
    this.name = '张三';
    this.age = "18";
    this.my = function () {
        console.log(this.name)
    }
 
}

var a = new names(); //构造函数要用new调用
a.my()
var b = new names();
b.my()

你可以这样写


function names(_name, _age) {
 {
    name: '张三';
    age: "18";
    my() {           // {  报错:SyntaxError: Unexpected token '{'
          console.log(this.name)
    }
}
}