如何使原型getTaggedTweet枚举,因此无法从外部访问此原型?我可以使用对象的defineProperty方法吗?
tabBarController?.navigationController?.pushViewController(viewController, animated: true)
答案 0 :(得分:0)
使一个属性可枚举或不可枚举不会影响它是否可以从外部访问。如果它是一个属性,则可以使用Object.getOwnPropertyNames
来 对其进行访问,而const obj = {};
Object.defineProperty(obj, 'amIPrivate', {
value: 'no',
enumerable: false
});
Object.getOwnPropertyNames(obj).forEach((prop) => {
console.log(obj[prop]);
});
也会遍历不可枚举的属性。
const Tweet_api = (() => {
function Tweet_api(tweetID) {}
Tweet_api.prototype.getTweetByHandler = async function() {
const data = await getTaggedTweet.call(null, 'handler');
return data;
};
Tweet_api.prototype.getTweetByHashtag = async function() {
const data = await getTaggedTweet.call(null, 'hashtag');
return data;
};
const getTaggedTweet = method => method === 'handler' ? '@' : '#';
return Tweet_api;
})();
相反,您可以确保外部无法使用 closure 访问您的方法-制作一个IIFE,该类定义该类和其中的(私有,独立)函数,然后返回该类:< / p>
await
还请注意,无需using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnApp1_Click(object sender, EventArgs e)
{
var f = new WindowsFormsApplication2.Form1();
f.ShowDialog();
}
private void btnApp2_Click(object sender, EventArgs e)
{
var f = new WindowsFormsApplication3.Form1();
f.ShowDialog();
}
}
}
不需要的东西。