2015-07-03 66 views
1

,因爲你不是在相同的上下文中的對象有什麼不對下面的代碼爲什麼我得到了一個Uncaught SyntaxError: Unexpected token (未捕獲的SyntaxError:意外的令牌(在JavaScript錯誤

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

var john = new Person("John"); 
alert(john.sayhi()); 
+1

第一個 '{' 開頭的函數,而不是對象文本.. – user2864740

+3

函數Person(名字){返回{sayHi:function(){ return「hi」+ this.name; }} } –

+0

@ user2864740如何使它成爲一個對象? –

回答

2

的問題是sayHi的那聲明是無效的? 。

function Person(name){ 

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

var john = new Person("John"); 
alert(john.sayHi()); 
:文字,所以你有一個語法錯誤

var o = { sayHi: function() {}} ; 

,你可以使用「this」(由於您使用的「新」的話)做

另一種方式是

function Person(name){ 

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

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

您應該使用this使變量和函數的類的大衆。如果您不使用this關鍵字與變量,然後他們只能在類內訪問。

請檢查這個代碼。

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

你可以改變這樣的:

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()); 
0

東西使用對象構造:

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

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

0

你好請檢查該代碼

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

     return name; 
    }; 
})(jQuery); 

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

對於您可以採取的方法的sayHi出如下人物對象申報的透明度。

聲明個人對象,包括姓名和sayhi函數。

function Person(nameString){ 
     this.name = nameString; 
     this.message = sayhi; 
    } 

說什麼sayhi應該做的。

function sayhi(){ 
    return hiString = "hi " + this.name; 
} 

啓動你的人

var john = new Person("John"); 

調用sayHi的功能在你的個人目標,並警告返回值

alert(john.sayhi()); 
相關問題