thisの例2について
19028 ワード
下記のコードは正常に動作します.
コード1:
decode is not defined return decode;
コード1は次のように修正できます.
Extjs 4を使う過程で同じ問題に遭遇しました.一時的に隠しました.コードは以下の通りです.
lesson 02_06.
mySetTitle is not defined mySetTitle()
indexDemo 6.jsは以下の通り修正されました.mySetTitle()修正:this.mysSetTitle()
undefined
111
コード1:
- <html>
- <head>
- <title>this obj</title>
- </head>
- <body>
- <script>
- <!--
-
- function Utility(){
- this.decode = function(str){ return unescape(str); };
- this.getCookie = function(key){ // ... cookie
- var value = "i%27m%20a%20cookie";
- return this.decode(value);
- }
- };
- alert((new Utility).getCookie());
- -->
- </script>
- </body>
- </html>
上のコードは下記のように修正されました.エラーで実行できません.
- <html>
- <head>
- <title>this obj</title>
- </head>
- <body>
- <script>
- <!--
- function Utility(){
- this.decode = function(str){ return unescape(str); };
- this.getCookie = function(key){ // ... cookie
- var value = "i%27m%20a%20cookie";
- return decode(value);
- }
- };
- alert((new Utility).getCookie());
- -->
- </script>
- </body>
- </html>
エラーメッセージ:decode is not defined return decode;
コード1は次のように修正できます.
- <html>
- <head>
- <title>this obj</title>
- </head>
- <body>
- <script>
- <!--
-
- var Utility = {
- decode:function(str){ return unescape(str); },
- getCookie:function(key){ // ... cookie
- var value = "i%27m%20a%20cookie";
- return Utility.decode(value);
- }
- };
- alert(Utility.getCookie());
- -->
- </script>
- </body>
- </html>
Extjs 4を使う過程で同じ問題に遭遇しました.一時的に隠しました.コードは以下の通りです.
lesson 02_06.
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Ext.create</title>
- <link rel="stylesheet" type="text/css" href="../extjs-4.1.0/resources/css/ext-all.css"/>
- <script type="text/javascript" src="../extjs-4.1.0/bootstrap.js"></script>
- <script type="text/javascript" src="indexDemo6.js"></script>
- </head>
- <body>
- </body>
- </html>
indexDemo 6.js
- (function(){
- Ext.onReady(function(){
- Ext.define("myWin",{
- extend:'Ext.window.Window',
- width:400,
- height:300,
- title:'uspcat',
- newtitle:'new uspcat',
- mySetTitle:function(){
- this.title = this.newtitle;
- },
- initComponent: function(){
- mySetTitle();
- this.callParent(arguments);
- }
- });
- Ext.create('myWin',{
- title:'my win'
- }).show();
- });
- })();
運転結果は以下の通りです.mySetTitle is not defined mySetTitle()
indexDemo 6.jsは以下の通り修正されました.mySetTitle()修正:this.mysSetTitle()
- (function(){
- Ext.onReady(function(){
- Ext.define("myWin",{
- extend:'Ext.window.Window',
- width:400,
- height:300,
- title:'uspcat',
- newtitle:'new uspcat',
- mySetTitle:function(){
- this.title = this.newtitle;
- },
- initComponent: function(){
- this.mySetTitle();
- this.callParent(arguments);
- }
- });
- Ext.create('myWin',{
- title:'my win'
- }).show();
- });
- })();
---------------------------------------------
- <html>
- <head>
- <title>this obj</title>
- </head>
- <body>
- <script>
- <!--
- function Utility(){
- this.decode = function(str){ return unescape(str); };
- this.getCookie = function(key){ // ... cookie
- var value = "i%27m%20a%20cookie";
- return this.decode(value);
- }
- };
- function showUserIdentity(){
- // getCookie ,
- var getCookie = Utility.getCookie; // , Utility
- alert(getCookie);
- }
- showUserIdentity();
- -->
- </script>
- </body>
- </html>
実行結果:undefined
111