未捕获的语法错误:意外的标记(Javascript中的错误

未捕获的语法错误:意外的标记(Javascript中的错误,javascript,Javascript,下面的代码有什么问题?为什么我得到了一个未捕获的语法错误:意外标记( 问题是sayHi的声明是无效的,因为您与对象文本不在同一上下文中,所以您有语法错误 var o = { sayHi: function() {}} ; 您可以使用“this”(因为您已经在使用“new”): 另一种方法是 function Person(name){ return { sayHi : function() { return "hi " + name; }

下面的代码有什么问题?为什么我得到了一个
未捕获的语法错误:意外标记(


问题是sayHi的声明是无效的,因为您与对象文本不在同一上下文中,所以您有语法错误

var o = { sayHi: function() {}} ;
您可以使用“this”(因为您已经在使用“new”):

另一种方法是

function Person(name){

   return {
      sayHi : function() {
         return "hi " + name;
      }
   }
}    

var john = Person("John");
alert(john.sayHi());

您应该使用
this
来公开类的变量和函数。如果您不将
this
关键字用于变量,则只能在类内部访问它们

请检查这个代码

function Person(name){
  this.sayHi = function(){
    return "hi " + name;
  }
}
var john = new Person("John");
alert(john.sayHi());

您可以这样更改:

function Person(name){
    this.sayHi = function(){
      return "hi " + name;
    }
}

var john = new Person("John");
alert(john.sayHi());
或者类似的事情

function Person(name){
    this.name = name;
}
Person.prototype.sayHi = function(){
      return "hi " + this.name;
}
var john = new Person("John");
alert(john.sayHi());

使用对象构造函数:

职能人员(姓名){
这个。_name=name;
this.sayHi=函数(){
返回“hi”+此名称;
}
}
var john=新人(“john”);

警报(john.sayHi());
你好,请检查此代码

(function( $ ){
   $.fn.sayHi = function(name) {

      return name;
   }; 
})( jQuery );

alert($('body').sayHi('dasd'));

为了更加清晰,您可以将sayhi方法从Person对象声明中去掉,如下所示

声明Person对象,包括name和sayhi函数

function Person(nameString){
        this.name = nameString;
        this.message = sayhi;
    }
说明sayhi应该做什么

function sayhi(){
    return hiString = "hi " + this.name;
}
启动你的人

var john = new Person("John");
对Person对象调用sayhi函数并警告返回值

alert(john.sayhi());

第一个“{”启动一个函数,而不是一个对象文字..function Person(name){return{sayHi:function(){return“hi”+this.name;}}}}}@user2864740如何使其成为一个对象?除了@DanielTate所说的之外,您正在调用“sayHi”,但您将其定义为“sayHi”
var john = new Person("John");
alert(john.sayhi());