なぜ私はこれを行うことができないのですか?
var MyObject = {}
MyObject.foo = function(){
this.sayhello = function(){
alert('Hello');
}
}
MyObject.foo.sayhello();
それをどのように行うことができるかについてのアイデアはありますか?
なぜ私はこれを行うことができないのですか?
var MyObject = {}
MyObject.foo = function(){
this.sayhello = function(){
alert('Hello');
}
}
MyObject.foo.sayhello();
それをどのように行うことができるかについてのアイデアはありますか?
内foo
、this
参照MyObject
、つまり、後:
MyObject.foo();
あなたは呼び出すことができます:
MyObject.sayhello();
を呼び出せるようにしたい場合は、 の関数であるMyObject.foo.sayhello()
必要があります。sayhello
MyObject.foo
var MyObject = {}
MyObject.foo = function () {...};
MyObject.foo.sayhello = function () {
alert('hello');
}
foo
関数である必要がない場合は、次のように宣言するだけです。
var MyObject = {
foo: {
sayhello: function () {
alert('Hello');
}
}
}
これにより、次のように呼び出すことができます。
MyObject.foo.sayhello();
関数が実際に追加さMyObject.foo()
れるように、最初に呼び出す必要があります。this.sayhello
それからあなたは電話することができるはずですMyObject.foo.sayhello();
var MyObject = {}
MyObject.foo = {
sayhello: function(){
alert('Hello');
}
}
MyObject.foo.sayhello();
これは、関数がまだ存在していないためです。したがって、最初にfooを呼び出す必要があります。あなたがすることは、プロパティfooから関数sayhelloを呼び出すことです。しかし、あなたはプロパティfooを持っていません。関数fooがあります。
ただし、jQueryのように、これを実行してチェーンにすることもできます。
var MyObject = {}
MyObject.foo = function(){
this.sayhello = function(){
alert('Hello');
}
return this;
}
MyObject.foo().sayhello();
連鎖関数ではなく、オブジェクトfoo内に関数sayhelloを作成します。しかし、関数を持つオブジェクト内のオブジェクト。
var MyObject = {
foo : {
sayhello : function(){
alert("hello");
}
}
}
MyObject.foo.sayhello(); // Now does work!