我想将window属性'otherName'描述符看成jQuery闭包。但 进入jQuery闭包'otherName'描述符显示未定义,我认为可能 是getOwnPropertyDescriptor()没有得到窗口对象。我对吗?如果我使用 这个代码在普通的js -
var otherName = "ckMe";
var result = Object.getOwnPropertyDescriptor(window, "otherName");
console.log(result);
// Object { value: "ckMe", writable: true, enumerable: true, configurable:
//false }
这很好。但是当这个代码在jQuery中时,我得到了结果=未定义。
(function ($) {
$(window).on("load", function (event) {
var otherName = "ckMe";
var result = Object.getOwnPropertyDescriptor(window, "otherName");
console.log(result);//undefined
});
}(jQuery));
或者,如果我使用此代码相同的结果,未定义。
(function ($) {
$(function () {
var otherName = "ckMe";
var result = Object.getOwnPropertyDescriptor(window, "otherName");
console.log(result);//undefined
});
}(jQuery));
我想在jQuery闭包中使用此代码,因为我的所有代码都在那里。一世 已经在谷歌搜索过这个问题,但没有得到最好的 解。请帮我。谢谢大家。 抱歉,如果我有什么不对劲。
答案 0 :(得分:1)
在您的第二个代码块中,exec
不是kubectl exec -it name-of-your-pod -- /bin/bash
的属性。 otherName
仅在全局范围内获取window
声明的属性。在您的第二个两个代码块中,window
声明不在全局范围内,因此var
不是任何内容的属性¹,它只是一个局部变量。它们没有属性描述符,因为它们不是属性。
¹“不是任何属性” - 在规范术语中,局部变量是词法环境对象上的绑定。绑定有点像属性,但它们不是属性(在JavaScript的对象属性意义上),并且它们没有属性描述符(也不能直接访问Lexical Environment对象 - 事实上,它可能不会字面上存在于任何特定的JavaScript引擎中。